반응형
var / let / const 이란?
var
자바스크립트에서 변수를 선언할 때 var를 사용하였다.
var a = 'superman';
문자도 var 숫자도 var 하나로 동일하게 사용하여서 편리하였는데
ES6 이상 문법으로 갑자기 let과 const가 생겼다.
const
const b = 'batman'; // 변경 불가
const로 선언한 변수는 값을 변경할 수 없습니다.
변하지 않는 상수의 값만 선언할 수 있습니다.
let
let은 var와 같이 변수의 값을 변경 가능합니다.
하지만, 유효 범위가 다릅니다.
var result;
function add(a, b) {
result = a + b; // 접근 가능
return result
}
let은 { } 괄호 안의 선언된 범위 안에서만 접근이 가능합니다. (블록 레벨 스코프)
let result;
function add(a, b) {
result = a + b; // error 접근 불가능
return result
}
const는 변하지 않는 변수, let은 다시 변하는 변수를 선언하라는 것은 알겠는데,
const / var를 사용하면 되지, 왜 let이 생겼을까?
const 와 let을 사용 해야 하는 이유
var 의 문제점
- 함수 레벨 스코프
- 재 선언 가능
var의 scope는 함수단위이다.
이 스코프가 넓어서 문제가 생기는 경우가 많습니다.
재할당 가능해서 개발자가 실수로 동일한 변수이름으로
재선언을 하게 되면 코드에 오류가 생길 수 있습니다.
var a = 'superman';
function add() {
var a = 'batman';
}
console.log(a); // ???
이러한 문제점들을 let과 const가 해결할 수 있습니다.
- 블록 레벨 스코프
- let은 재선언이 안되고
- const는 재할당이 되지 않는다.
const를 이용해서 상수 기능을 사용할 수 있고,
let을 이용하면 코드를 더 깔끔하게 작성할 수 있는 장점이 있습니다.
728x90
반응형