자바스크립트

let과 var의 차이 : 호이스팅

양상추상츄 2021. 11. 8. 22:31

호이스팅

코드가 실행되기 전에 자바스크립트 엔진이 선언해둔 변수를 미리 조사해서 메모리에 저장

함수가 실행되기전에 안에있는 변수들을 범위의 최상단에 올리는것


console.log(a)
var a = 1
console.log(a)

호이스팅시 변수의 선언과 초기화(undefined으로) 같이 시켜버림

console.log(a)
a = 1
var a
console.log(a)

둘다 

undefined

1

출력


전역변수와 지역변수의 차이가 불분명함

for(var i = 1; i<5; i++){
	console.log(i)
}
console.log(i)

1

2

3

4

5


변수이름이 같아도 허용함

var a = 1
console.log(a)
var a = 2
console.log(a)

1

2


console.log(a)
let a = 1
console.log(a)

ReferenceError: Cannot access 'a' before initialization
    at Object. (C:\Strom\testInput.js:3:13)

a가 선언된 라인 전까지는 a에 접근할 수 없다.

 

a가 호이스팅으로 기억된건 알겠으나 a선언문이 나오기 전까지 너는 a에 접근 할 수 없어

 

Temporal Death Zone(TDZ) 

일시적 사각지대


https://velog.io/@bathingape/JavaScript-var-let-const-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

var, let, const 차이점

JavaScript에서 변수 선언 방식인 `var, let, const` 의 차이점에 대해 알아보자. 1. 변수 선언 방식 우선, `var`는 변수 선언 방식에 있어서 큰 단점을 가지고 있다. 변수를 한 번 더 선언했음에도 불구하

velog.io

let name = 'bathingape'
    console.log(name) // bathingape

    let name = 'javascript'
    console.log(name) 
    // Uncaught SyntaxError: Identifier 'name' has already been declared

    name = 'react'
    console.log(name) //react

var - 변수를 여러번 선언 할 수 있다. 같은 이름으로

let - 같은 이름으로 변수를 여러번 선언 할 수 없음, 대신 재할당 가능

const - 재선언, 재할당 모두 불가능

'자바스크립트' 카테고리의 다른 글

홀짝 맞추기 프로그램  (0) 2021.11.08
제어문 if / switch / 삼항 조건연산자  (0) 2021.11.08
단위 변환 문제  (0) 2021.11.08
packege.json 오류  (0) 2021.11.08
시계의 각도 계산  (0) 2021.11.08