-
const, let, var의 차이JavaScript 2020. 10. 12. 16:03
ES6 이전에는 값을 담는 데 var 키워드 만을 이용했다. var 키워드는 함수 단위의 scope를 가진다. 즉, 해당 값을 사용할 수 있는 코드 영역이 함수 단위다.
function hello() { var a = "hello"; if(true) { // {1} var a = "world"; console.log(a); // world {2} } console.log(a); // world {3} } hello();
{1} if 문 밖에서 var 값을 "hello"로 선언하고, {2} if 문 안에서 "world"로 설정했다. if 문 안에서 새로 선언했음에도 if 문 밖에서 a를 조회하면 {3} 변경된 값이 나타난다.
이런 문제점을 해결해 주는 것이 바로 let과 const 인 것!
function aboutLet() { let a = 10; if(true){ let a = 20; console.log(a); // 20 } console.log(a); // 10 } aboutLet();
let과 const는 scope가 함수 단위가 아닌 블록 단위이므로, if 문 안에서 선언한 a 값은 if 문 밖의 a 값을 변경하지 않는다. 또한 let과 const를 사용할 때 아래 처럼 같은 블록 안에서의 중복 선언이 불가능하다.
let a = 10; let b = 20; // SyntaxError: Identifier 'a' has already been declared
const는 한번 선언하면 재설정할 수 없다.
const b = 'hi'; b = 'hello'; console.log(b) // TypeError: Assignment to constant variable.
정리
- let은 한번 선언한 후 값이 유동적으로 바뀔 수 있을 때만 사용한다.(for문 안에서 주로 사용)
- const는 한번 설정한 후 바뀔 일이 없는 값에 사용한다.
'JavaScript' 카테고리의 다른 글
호이스팅 (0) 2020.10.28 Scope (0) 2020.10.25 Promise 객체 (2) 2020.07.04 객체 지향 프로그래밍(5) - 상속의 방법(ES5 / ES6) (0) 2020.06.21 객체 지향 프로그래밍(4) - this (0) 2020.06.20