불변변수와 가변변수
var, let, const의 차이점
1. 변수 선언 방식
es6 이전의 Javascript는 주로 var 를 사용하여 변수를 선언하였다.
하지만, 크나큰 단점이 있었다.
var aa = 'Hello';
console.log(aa); //Hello
var aa = 'World!';
console.log(aa); //World
변수를 한번 더 선언하고도 어떠한 오류가 없었다.
어찌보면 편할 수도 있지마느 코드양이 많아지거나 복잡해질 경우, 해당 코드는 어떤 것을 가리키는 지 확인하기 매우 어렵다.
그렇기 때문에 ES6 이후 나타난 게, let
과 var
이다.
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
Author And Source
이 문제에 관하여(불변변수와 가변변수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dev_jhjhj/ES6-불변변수와-가변변수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)