🥸 변수는 데이터를 저장할 수 있는 메모리 공간을 말합니다. 코드의 재활용을 높여주고, 가독성을 좋게 만들어주며, 유지보수에 용이하여 사용합니다. 변수를 선언할 때에는
var
,let
,const
,class
,function
을 사용하며, 해당 글에서는var
,let
,const
의 차이에 대해 다루겠습니다.
function test() {
if (true) {
var x = 10;
}
console.log(x); // 10 -> 변수가 선언된 함수 내부라면 어디서든지 접근 가능
}
test();
var x = 10;
var x = 20;
console.log(test); // 20
console.log(x); // undefined
var x = 10;
// 초기화 단계에서 undefined로 초기화 됨
function test() {
if (true) {
let x = 10;
}
console.log(x); // x is not defined -> 변수가 선언된 블록 내부가 아니라서 접근 불가
}
test();
let x = 10;
let x = 20;
console.log(test); // Identifier 'x' has already been declared
console.log(x); // cannot access 'x' before initialization
let x = 10;
// 초기화 되지 않으면 변수 참조 불가
const x = 10;
x = 20; // Assignment to constant variable
const obj = {a: 1, b: 2};
obj.c = 3;
console.log(obj); // {a: 1, b: 2, c: 3}
const
는 선언과 동시에 할당이 이루어져야함const x; // Missing initializer in const declaration
🧐 호이스팅에 대해 궁금하다면 이곳을 클릭하세요!
해당 글은 책모던 자바스크립트 deep dive
를 참고하여 작성하였습니다.