왜 만들어 졌는가.
- var 는 모두 전역변수이다. : 블록의 변수가 남아있게 된다. 선언 후 변수를 버릴 수가 없다.
if(true) {
var num = 10;
console.log(num);
}
console.log(num);
console.log(window.num);
VM3829:3 10
VM3829:6 10
VM3829:7 10
- var는 같은 변수 값을 다시 선언할 수 있다. : 유동적 값을 받는 변수와 상수(무결성) 의 구분이 없다.
var num = "중요한 변수";
if(true) {
var num = "중요한 변수를 바꾸어버림";
}
console.log(num);
VM4067:7 중요한 변수를 바꾸어버림
let
- 중복 선언이 불가능하다.
- 블록 스코프를 가진다.
일반적 자바 변수의 특성을 가지고 있는 것으로 보인다.
if(true){
let num = 3;
console.log(num);
let num = 7; // 중복선언 불가
num =7; // 값 할당은 가능
}
console.log(num); // 블록 스코프를 가지므로 전역객체에 해당 프로퍼티는 존재치 않음
const
- 중복 선언이 불가능하다.
- 블록 레벨 스코프를 가진다.
- 상수 값으로 값을 재할당할 수 없다, 값을 변경할 수는 있다(?)
왜 그러한가 참 궁금했다. 객체의 틀을 유지한체 값만 변경하는 조작. 객체 틀에 대한 무결성을 지킨다는 의미였다.
//const 는 객체 선언시 자주 사용한다.
const obj = {
key: "value"
}
obj.key = 'value2'; // <<< 값을 변경 할 수는 있다.
const obj = {}; // 재할당 불가
console.log(obj.key);
'기반을 다지자 ES6' 카테고리의 다른 글
화살표 함수 (0) | 2020.10.01 |
---|---|
템플릿 리터럴 (0) | 2020.10.01 |
CallBack (0) | 2020.10.01 |
input 태그 조작 (0) | 2020.10.01 |
HTML 태그 속성 조작 (0) | 2020.10.01 |