Javascript에서 변수를 선언하는 방법은 3가지가 있다.

var

es6 문법 도입 이전까지 변수 선언에 사용한 키워드 ( 재선언 가능, 재할당 가능 )

var a = 1;
console.log(a); // 1

var a = 2;
console.log(a); // 2

 

똑같은 이름의 변수를 선언하고 초기화 하더라도 에러가 나지 않는다.

var 키워드는 변수의 재선언, 재할당 모두 가능하기 때문에 코드양이 많아지게 되면 그만큼 유지 관리가 힘들다.

 


let

es6에서 도입된 변수 선언에 사용하는 키워드 ( 재선언 불가, 재할당 가능 )

let a = 1;
console.log(a);

let a = 2; // SyntaxError: Identifier 'a' has already been declared
console.log(a);

 

var 과는 달리 똑같은 이름으로 변수를 선언하면 이미 정의되어 있어서 선언할 수 없다는 에러 메시지를 띄운다.

console.log(b); // ReferenceError: Cannot access 'b' before initialization
let b = "a"

 

또한 let 키워드는 호이스팅시 변수를 초기화 하지 않고,

위 코드 처럼 b를 초기화하기 전에 액세스 할 수 없다는 에러 메세지를 띄운다.

 


const

es6에서 도입된 키워드. ( 재선언 불가, 재할당 불가 )

변수 값을 상수로 변경한다.

 

const a = 1;
a = 2; // TypeError: Assignment to constant variable

 

상수 값이므로 재할당하지 못한다.let과 마찬가지로 호이스팅시 변수를 초기화 하지 않는다.

 

 

 

참조 : https://developer.mozilla.org/ko/docs/Glossary/Hoisting

 

호이스팅 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

JavaScript 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 끌어올리는 것처럼 보이는 현상을 뜻합니다.

developer.mozilla.org

 

'Javascript' 카테고리의 다른 글

[Javascript] 프로토타입 ( Prototype )  (0) 2024.08.22
[Javascript] Random - 난수 생성하기  (0) 2024.08.21
[Javascript] Map  (0) 2024.08.19
[Javascript] 소수 올림, 내림, 반올림  (0) 2024.08.19
[Javascript] this  (0) 2024.08.14

+ Recent posts