var, let, const

이진우·2024년 1월 21일
1

코드잇 프론트엔드

목록 보기
7/11
post-thumbnail

const 호텔에서 var let 파킹을 제공하는군요!
정말 고마워요!


오늘은 var let const를 중복선언, 스코프, 호이스팅의 관점에서 알아보자.

var

중복선언 : 가능!
-> 이게 말이 안되는일임

var imHappy = 'yes';

var imHappy = 'no';

console.log(imHappy) // no

한번 선언해도 다시 선언이 가능하다.
마지막에 선언된걸로 출력됨

스코프
이 친구는 함수단위(function)의 스코프를 가진다.

var name = 'hello'

function hi() {
  var name = 'hi'
  console.log(name) // hi
}

hi()
console.log(name) // hello

호이스팅 : 가능!

console.log(name); // undefined
var name = hi

let

중복선언 : 안됨!

스코프
블록단위의 스코프를 가진다.

{
  let a = hi
}
console.log(a);	//ReferenceError: a is not defined

호이스팅 : 가능!

const

중복선언 : 안됨!
초기화와 선언을 동시에 해야함!

스코프
블록단위 스코프를 가짐
{
const meet = hi
}
console.log(meet); //ReferenceError: meet is not defined

호이스팅 : 가능!

Temporary Dead Zone

letconst둘다 호이스팅이 되는데 안되는것처럼 보이는건 TDZ에 들어가서임

JS에서는 총 3단계에 걸쳐서 변수를 선언함

  1. 선언(Declaration): 스코프와 변수 객체가 생성, 스코프가 변수 객체를 참조.

  2. 초기화(Initialization): 변수 객체 값을 위한 공간을 메모리에 할당. 이 때 할당되는 값은 undefined다.

  3. 할당(Assignment): 변수 객체에 값을 할당한다.

letconst둘다 선언은 되어 있으나 초기화가 이뤄지지않음.
실제로 값을 할당하는 부분에 가야 초기화와 할당이 일어남

profile
츄라이츄라이

0개의 댓글