-
개발자공부:호이스팅&var / let 차이공부 2022. 1. 14. 09:42반응형
호이스팅: 함수 실행 전 안에 있는 변수를 최상단으로 끌어올리는 것.
즉, 함수 실행 전 어떤 변수가 있는지 다시 확인하고 기억함.
console.log(a) //선언 전에 log 호출해도 오류 안남-> var 의 문제점
var a = 1
console.log(a)
var / let 차이
var의 문제점
전역변수: 블락 밖에서 선언을 한 어디서든 쓰일 수 있는 변수 var a = 2
지역변수:{ } 블락 안에서 선언된 변수, 블락안에서만 쓸 수 있음
1. function foo( ){
var b = 1
}
함수만 지역변수로 호이스팅되고, 나머지는 전역변수로 올림(함수만제외)
2. var a = 1 // 변수 이름이 같아도 에러 안남
console.log(a)
var a = 2
console.log(a)
=>이러한 오류들로 자바스트립트 ES6 업데이트때 var 대신 let이 생김.
let으로 변경 시
console.log(a) // 실행시키면
let a = 1 // Reference Error: cannot access 'a' before initialization
console.log(a) // 에러발생
// let 도 호이스팅 가능
// 대신 TDZ(Tenporal Death Zone)
// a 가 호이스팅으로 기억 된 건 알지만
// a 가 선언문이 나오기 전까지는 a 에 접근 할 수 없어 // 일시적으로 너는 죽은 zone이야반응형'공부' 카테고리의 다른 글
Unit4 - [HTML] 기초 (0) 2022.07.04 [JavaScript] 기초 제어문2 (0) 2022.07.01 [JavaScript] 기초 (0) 2022.06.30 22.04.25 Learn how to learn (0) 2022.06.29 코드스테이츠 프론트엔드과정 개강 (0) 2022.06.28