티스토리 뷰

1. 선언, 할당에서의 차이점

 

간단하게 말하자면,

var은 재선언, 재할당 가능

let은 재할당 가능

const는 재선언, 재할당 둘 다 불가능하다.

 

예를 들어보자.

var apple1 = 3
var apple1 = 4	//정상작동 
apple1 = 5	//정상작동

console.log(apple1)	 //5

 

 

위와 같이 var은 변수를 재선언 해도, 값을 재할당 해도 아무런 문제 없이 작동이 된다. 

짧게 몇줄 코딩하는 방법으론 편하게 느껴질 지 몰라도, 수백 수천개의 라인이 존재한다면 상당히 복잡해질 것이다.

 

이에 새롭게 ES6에 let과 const가 등장했다.

 

let apple1 = 3	
let apple1 = 4	//재선언이 불가하므로 에러
apple1 = 5	//재할당은 가능함

console.log(apple1)	//5

 

이처럼 재할당은 가능하다.

 

const apple1 = 3
const apple1 = 4	//재선언 불가능 에러
apple1 = 5	//재할당 불가능 에러

console.log(apple1)	//Uncaught TypeError: Assignment to constant variable.

const는 재선언도 재할당도 불가능하기에 엄격하면서 안전하게 이용 가능하다.

 

 

2. 호이스팅에서의 차이점

호이스팅에 관해서는 따로 블로그에 정리 해 두도록 하겠다.

 

간단하게 호이스팅(Hoisting)이란, 

선언된 함수나 변수(function, var, const, let 등)를 코드 최상단으로 끌어올리는 것이다. 

 

var은 호이스팅에 영향을 받아 변수를 선언하기 전에 사용해도 초기값을 undefined로 할당하여 에러없이 실행이 된다.

그러나 let과 const는 값의 할당 전에 사용하려고 하면 메모리에 해당 변수가 없기 때문에 에러가 발생한다. 자동으로 초기값을 undefined로 할당시키지 않는다.

 

 

출처

bathingape.log 블로그 글 https://velog.io/@bathingape/JavaScript-var-let-const-%EC%B0%A8%EC%9D%B4%EC%A0%90
suyeon Bak 님의 블로그 글 https://medium.com/@yeon22/javascript-var-let-const%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-9fab5c264c9c
반응형
댓글