웹 개발 메모장

[자바스크립트] var / let / const 본문

옛날../자바스크립트

[자바스크립트] var / let / const

도로롱주 2018. 1. 2. 19:29




var / let / const



자바스크립트에서 변수를 선언하는 방법은 var 하나였습니다.


ECMAScript 6 버전 부터 letconst 가 추가되었습니다.



var


기존 var 는 변수의 재선언 값 변경이 매우 너그러워서 자칫 코드가 위험할 수 있게 됩니다.


간단하게 예를 들면


1
2
3
4
5
6
var name = '박보영';
{
    var name = '하연수';
    alert(name);
}
alert(name);
cs


위와 같은 코드에서 첫번째 alert() 에서는 하연수를 두번째 alert()에서는 박보영을 출력하고자 의도했을 지 모르지만 결과적으로 두 번 모두 하연수를 출력하게 됩니다. 의도치 않았지만 에러가 발생하지 않기 때문에 특히 유지보수 시 코드가 추가됨에 따라 다른 영향을 끼칠 수 있어 위험할 수 있을 것 같습니다.




let


var와 다르게 let은 변수를 스코프당 한번만 선언할 수 있게 해줍니다. 또한 해당 스코프에서만 접근이 가능합니다.


1
2
3
4
5
6
let name = '박보영';
{
    let name = '하연수';
    alert(name);
}
alert(name);
cs


따라서 위의 코드는 각각 하연수 박보영을 출력합니다.




const


const 는 한번 값을 할당하면 값을 바꾸지 못하게 '상수' 취급을 하도록 변수를 선언하는 것입니다. (자바의 final)


1
2
const num = 100;
num = 200// 에러 
cs




키워

구분

선언 위치

재선언

var

변수

전역 스코프

가능

let

변수

해당 스코프

불가능

const

상수

해당 스코프

불가능




Comments