1. var
/**
* 몇번이고 '재선언' 가능 -> 혼란 야기
*/
var a = 3;
var a = 4;
var a = 6;
/**
* 아래와 같은 경우..
*/
for (var i = 0; i < 10; i++) {}
console.log(i);
i가 10이 출력된다....
2. let
/**
* '재선언' 불가 --> 에러
*/
let a = 3;
let a = 4;
let a = 6;
/**
* '재할당'은 가능
*/
a = 5;
a = 6;
/**
* 아래와 같은 경우..
*/
for (let i = 0; i < 10; i++) {}
console.log(i);
3. const
/**
* '재선언' 불가
*/
const a = 3;
const a = 4;
const a = 6;
/**
* '재할당'도 불가능
*/
a = 5;
a = 6;
요약하면
1. var - 이상한 변수
A. 재선언 : O B. 재할당 : O
2. let - 상식적인 변수
A. 재선언 : X B. 재할당 : O
3. const - 일반적인 상수
A. 재선언 : X B. 재할당 : X
참고로 아래와 같은 호이스팅은 let도 가능하다.
a = 3;
var a;
a = 3;
let a;
'Dev- > java script, jQuery, Ajax' 카테고리의 다른 글
자바스크립트 생성자 함수 패턴(생성자 강제) (0) | 2019.05.01 |
---|---|
자바스크립트 객체 생성방법 new Object() vs 객체 리터럴({}) vs 생성자 함수 (1) | 2019.05.01 |
자바스크립트 arguments(매개변수의 갯수에 따른 처리가 필요할 때) (0) | 2019.05.01 |
자바스크립즉시 실행함수 (0) | 2019.05.01 |
함수도 객체다. 자바스크립트 (0) | 2019.05.01 |