var, const, let

기초/JavaScript|2021. 9. 6. 20:11

var  vs const, let

ES2015부터는 var를 const와 let이 대체한다.

무슨 차이인가? → 블록 스코프(var은 함수 스코프)

if, for, while등의 중괄호({}) 안을 블록이라고 한다.

if (true) {
  var x = 3;
}

console.log(x); //3 출력

if (true) {
  const y = 3;
}
console.log(y); //ReferenceError: y is not defined

x : 블록은 빠져나갈 수 있지만, function의 중괄호 밖으로는 빠져나갈 수 없다. = 함수 스코프를 존중한다.

y : 블록을 빠져나갈 수 없다. = 블록 스코프를 존중한다.

 

const와 let의 차이?

const a = 3;
a = '5'; //Error

const b = {name: 'kimdoodoo'};
b.name = 'kimdoodoo';

const는 한 번 선언하고 나면 정확히 그 변수에 대해서는 다시 값을 지정할 수 없다.

b처럼 b라는 객체 내의 값을 바꾸는 것은 가능하다, a나 b 자체의 값을 바꾸는 것은 불가능하다.

→ const c; 이런 거 하면 나중에 에러남.

나중에 값을 바꾸고 싶다면 let을 사용하는 것이 좋다.

 

const는 실수로 값을 바꾸는 일을 막아야 하는 곳에 사용한다.

 

참조 : 제로초(zerocho)님 인프런 강의, https://ko.javascript.info/var

https://www.howdy-mj.me/javascript/var-let-const

'기초 > JavaScript' 카테고리의 다른 글

화살표 함수와 function  (0) 2021.09.06
호출 스택, 이벤트 루프  (0) 2021.09.02
객체 지향 프로그래밍  (0) 2021.06.23

댓글()