[Javascript] var와 let 차이, 호이스팅

null·2023년 3월 31일
0

Javascript

목록 보기
1/3

const

  • 상수 : 변하고 싶지 않은 값들을 만들떄 쓰임

var

  • 전역변수와 지역변수의 개념이 확실하지 않다
for(var i=1; i< 5; i++) {
 console.log(i) // 결과 : 1,2,3,4
}
console.log(i) // 결과: 1,2,3,4,5
  • 함수만 지역변수로 호이스팅이되고 나머지는 다 전역변수로 올린다(= 함수만 제외하고)
var a = 1
console.log(a)

var a = 2
consoele. log(a)

//  변수명이 겹친다??
// 결과  : 1
	    : 2

let

for(let i=1; i< 5; i++) {
 console.log(i) 
}
console.log(i) // error : i is not defined
console.log(a) 
let a = 1 
console.log(a) 
// 결과 : error_Cannot access 'a' before initalization
  • let도 호이스팅이 가능하나 'a'의 선언문(초기화)이 나오기 전까지는 'a'에 접근 할수 없다 : TDZ

호이스팅

  • 함수가 실행되기 전에 안에있는 변수들을 범위의 최상단으로 끌어올리는것
  • 호이스팅시 변수의 선언과 초기화 (undefined 로) 같이 시킨다
console.log(a) // 결과 : undefined  <--호이스팅 때문
var a = 1 
console.log(a) // 결과 : 1

0개의 댓글