JavaScript - let, const 공통사항


유효범위 존재

블록 스코프내에서.

TDZ

TDZ라는게 있었다.

재선언(재정의)

var a=0
var a=1
//문제 없다.

let b=2
let b=3
//문제 된다.

const c = 4
const c = 5
//문제 된다.

var d = 4
let d = 5 //안된다
const d = 6 // 안된다. 순서 상관 없다.

var를 안쓰는 편이 좋을 거 같다.

let / const ?

웬만해서는 const를 쓰는 것이 좋다.

let 값 자체의 변경이 필요한 예외적인 경우(경우가 적다.)

const : 객체. const를 많이 쓰는 것이 좋다고 한다.

전역객체의 프로퍼티

var a = 10
console.log(window.a) //10
console.log(a)//10
delete a
console.log(window.a) //10
console.log(a) // 10

delete window.a //false

window.a = 10;
delete a // true

var a = 10
delete a //false
delete window.a //false

var c = 30; => 전역변수임과 동시에 전역객체의 프로퍼티가 된다. 함부로 삭제할  없다.

const a = {
  b:1
}

delete a.b // true

전역변수 선언을 최소화해라.

let c = 30 //window.c에는 존재하지 않음. window 객체의 프로퍼티가 되지 않는다.

console.log(window.c) //undefined

delete c // false


delete 는 객체에 있는 프로퍼티를 지우라는 명령어이다. 근데 c는 접근이 안되니까 안된다.

window.b = 20
delete b //(window.이 생략된 것이다.) true