javascript var,const,let 코드 예시를 통한 비교

민코·2023년 11월 9일

중복선언 및 재할당

let

let misty = 10;
// let misty = 20;    -> 중복 선언 시 에러 발생 
misty = 30;       // -> 값 재할당 가능 

console.log(misty) // 출력 30

Ⅰ. 중복 선언 불가능
Ⅱ. 값 재할당 가능

var

var jingu = 10;
var jingu = 20; // 중복 선언 허용 
jingu = 30      // 값 재할당 가능

console.log(jingu) // 출력: 30 

Ⅰ. 중복 선언 허용
Ⅱ. 값 재할당 가능

const

const bisil = 10;
const bisil = 20;    //  -> 중복 선언 시 에러 
bisil = 30;          //  -> 값 재할당 시 에러

console.log(bisil);  // 에러 발생

Ⅰ. 중복 선언 불가능
Ⅱ. 값 재할당 불가능


범위

let

if(true){
   let x = 10;
   console.log(x);   // 10
}
//블록 외부 
console.log(x); 	//참조에러 : 정의되지 않음 

Ⅰ. let은 블록 내에서만 유효합니다(block scope)

var

if(true){
	var x = 10;
    console.log(x);  // 10
}
//블록 외부 
console.log(x) 	 	// 10

Ⅰ. "var" 의 유효범위는 함수(function scope)입니다.

const

if (true) {
   const y = 10;
   console.log(y);   // 10
}
  //블록 외부
  console.log(y);  // 에러: 참조에러, 정의되지 않음

Ⅰ. const는 블록 내에서만 유효합니다(block scope)


호이스팅

let

daenamuhelricopter = 'test' //참조 에러 대나무 헬리콥터가 정의 되어있지 않음 
let daenamuhelricopter

Ⅰ. 호이스팅은 일어남
Ⅱ. tdz(temporal dead zone)
Ⅲ. let은 값을 할당하기 전에 변수가 선언 되야함

var

doraemong = 'test'
let doraemong 

Ⅰ. 호이스팅으로 인해 참조에러가 안난다.

const

const fish = mackerel;

Ⅰ. 호이스팅은 일어남
Ⅱ. const는 선언과 동시에 값을 할당 해야함

정리

let

Ⅰ. 중복 선언 불가능
Ⅱ. 값 재할당 가능
Ⅲ. let은 블록 내에서만 유효합니다(block scope)
Ⅳ. 호이스팅은 일어남
Ⅴ. tdz(temporal dead zone)
Ⅵ. let은 값을 할당하기 전에 변수가 선언 되야함

var

Ⅰ. 중복 선언 허용
Ⅱ. 값 재할당 가능
Ⅲ. "var" 의 유효범위는 함수(function scope)입니다.
Ⅳ. 호이스팅으로 인해 참조에러가 안난다.

const

Ⅰ. 중복 선언 불가능
Ⅱ. 값 재할당 불가능
Ⅲ. const는 블록 내에서만 유효합니다(block scope)
Ⅳ. 호이스팅은 일어남
Ⅴ. const는 선언과 동시에 값을 할당 해야함

profile
한 걸음

0개의 댓글