JavaScript에서는 let, var, const를 사용하여 변수를 선언할 수 있습니다. 이러한 키워드는 유사해 보일 수 있지만 코드 작동 방식에 큰 영향을 미칠 수 있는 주요 차이점이 있습니다. 이 글에서는 이들 간의 차이점을 설명하고 각각의 사용 시기를 이해하는 데 도움을 드리겠습니다.
변수 | 허락하다 | 상수 |
---|---|---|
소개됨: JavaScript가 시작된 이후부터 사용 가능합니다. | 소개됨: ES6(ECMAScript 2015)에 추가되었습니다. | 소개됨: ES6(ECMAScript 2015)에 추가되었습니다. |
범위: 함수 범위. var 변수는 선언된 함수 전체에서 액세스할 수 있습니다. | 범위: 블록 범위. let 변수는 선언된 블록 {} 내에서만 액세스할 수 있습니다. | 범위: let과 마찬가지로 블록 범위입니다. |
호이스팅 동작: var 변수는 호이스팅되며 선언되기 전에 사용할 수 있습니다(정의되지는 않지만). | 호이스팅 동작: 변수가 호이스팅되지만 초기화되지 않으므로 선언 전에 사용할 수 없습니다. | 호이스팅 동작: let과 유사하게 const 변수는 호이스팅되지만 초기화되지 않으므로 사용하기 전에 선언해야 합니다. |
재선언: 동일한 범위에서 var 변수를 오류 없이 다시 선언할 수 있습니다. | 재선언: 동일한 범위에서 let 변수를 다시 선언할 수 없습니다. | 재선언: let과 유사하게 const 변수를 다시 선언할 수 없습니다. |
재할당: var로 선언된 변수를 재할당할 수 있습니다. | 재할당: let으로 선언된 변수도 재할당할 수 있습니다. | 재할당: const로 선언된 변수는 재할당될 수 없습니다. 그것들은 일정합니다. |
다음은 var, let 및 const가 어떻게 다르게 동작하는지 보여주는 예입니다.
function userDetails(username) { if (username) { console.log(salary); // Output: undefined (due to hoisting) console.log(age); // Error: ReferenceError: Cannot access 'age' before initialization console.log(country); // Error: ReferenceError: Cannot access 'country' before initialization let age = 30; var salary = 10000; const country = "USA"; // Trying to reassign const // country = "Canada"; // Error: Assignment to constant variable. } console.log(salary); // Output: 10000 (accessible due to function scope) console.log(age); // Error: age is not defined (due to block scope) console.log(country); // Error: country is not defined (due to block scope) } userDetails("John");
예제 설명:
var로 호이스팅: var로 선언된 급여 변수가 함수의 맨 위로 호이스팅됩니다. 이것이 할당이 발생할 때까지 값이 정의되지 않더라도 선언 전에 액세스할 수 있는 이유입니다.
let 및 const를 사용하여 호이스팅: 연령 및 국가 변수도 모두 호이스팅되지만 var와 달리 초기화되지 않습니다. 즉, 선언 전에는 액세스할 수 없으므로 ReferenceError가 발생합니다.
블록 범위: if 블록 후에도 var에 함수 범위가 있으므로 급여에 계속 액세스할 수 있습니다. 그러나 age(let로 선언)와 country(const로 선언)는 모두 블록 범위이므로 블록 외부에서는 접근할 수 없습니다.
const를 사용한 재할당: const로 선언된 변수는 재할당할 수 없습니다. 이 예에서 국가 값을 변경하려고 하면 오류가 발생합니다.
재할당할 수 있지만 특정 코드 블록 내에서만 액세스할 수 있는 변수가 필요한 경우 let를 사용하세요. 이는 루프 카운터, 조건문 또는 수정되지만 블록 외부에 존재할 필요가 없는 모든 변수에 유용합니다.
함수 전체에서 액세스할 수 있는 변수가 필요한 상황에서는 var를 사용하세요. 하지만 이는 let 및 const의 도입으로 인해 최신 JavaScript에서는 덜 일반적입니다.
재할당해서는 안 되는 변수를 선언하려면 const를 사용하세요. 이는 구성 값이나 고정 데이터와 같이 코드 전체에서 동일하게 유지되어야 하는 상수에 이상적입니다.
현대적이고 효율적인 JavaScript를 작성하려면 var, let 및 const의 차이점을 이해하는 것이 필수적입니다. 현대 코드에서는 일반적으로 let과 const가 var보다 선호됩니다. const는 재할당되어서는 안 되는 변수에 대한 선택입니다. 올바른 키워드를 선택하면 버그가 덜 발생하는 더 명확하고 안정적인 코드를 작성할 수 있습니다.
변경해서는 안 되는 값에는 const를 사용하고, 블록 내에서 변경될 수 있는 변수에는 허용하고, 대부분의 경우 var를 사용하지 않으면 JavaScript 코드가 더 안전하고 관리하기 쉬워집니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3