불변변수와 가변변수

4703 단어 ES6JavaScriptES6

var, let, const의 차이점

1. 변수 선언 방식

es6 이전의 Javascript는 주로 var 를 사용하여 변수를 선언하였다.
하지만, 크나큰 단점이 있었다.


var aa = 'Hello';
console.log(aa);	//Hello
var aa = 'World!';
console.log(aa);	//World

변수를 한번 더 선언하고도 어떠한 오류가 없었다.
어찌보면 편할 수도 있지마느 코드양이 많아지거나 복잡해질 경우, 해당 코드는 어떤 것을 가리키는 지 확인하기 매우 어렵다.

그렇기 때문에 ES6 이후 나타난 게, letvar 이다.

let은 mutable(가변)하게 사용할 수 있고, const는 imutable(불변)하게 변수를 사용한다.

let은 재할당이 가능하지만, 재선언은 불가능하다.


let aa = 'Hello';
console.log(aa);	//Hello
let aa = 'World!';
console.log(aa);	    // Uncaught SyntaxError: Identifier 'aa' has already been declared

let test = 'Hello world!';
test = 'Goodbye-world!'
console.log(test);		// Goodbye-world!

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


const aa = 'Hello';
console.log(aa);	//Hello
const aa = 'World!';
console.log(aa);	    // Uncaught SyntaxError: Identifier 'aa' has already been declared

const test = 'Hello world!';
test = 'Goodbye-world!'	
console.log(test);		// Uncaught TypeError: Assignment to constant variable.

2. hoisting

Hoisting이란?
Hoisting은 선언을 가장 위로 끌어 올린다는 의미이다.

자바스크립트는 ES6에서 도입된 let, const를 포함하여 모든 선언 ( var, let, const, function, class 등)을 hositing 한다.

(추가 작성 필요)

참고 :

https://gist.github.com/LeoHeo/7c2a2a6dbcf80becaaa1e61e90091e5d

좋은 웹페이지 즐겨찾기