[javascript] var, let, const 차이와 hoisting

c0zyb1ue·2022년 8월 25일
0

javascript 공부

목록 보기
1/3

자바스크립트는 c언어나 java와 다르게 변수의 유형에 따라 변수선언을 다르게 할 필요없고 모든 변수는 var, let, const로 변수선언을 한다.


hoisting

javascript에서 변수 및 함수 선언이 스코프 최상단으로 끌어올려지는 현상

console.log(str1);
var str1 = "javascript";
console.log(str1);
undefined
javascript

error 대신 undefined라는 자료형이 나오는 이유가 hoisting 현상 때문

  • undefined은 변수를 선언하고 값을 할당하지 않은 상태(컴퓨터)
    null은 변수를 선언하고 빈 값을 할당한 상태(개발자)

코드 실행 시 작동하는 실제 모습

var str1; // 호이스팅 현상

console.log(str1);
str1 = "javascript";
console.log(str1);



변수선언 var

변수 재선언 및 재할당 가능 (호이스팅 일어남)

변수선언 let

변수 재선언 불가능 재할당 가능 (호이스팅 안됨)

변수선언 const

변수 재선언 및 재할당 불가능 (호이스팅 안됨)

var은 함수 스코프에서 유효합니다.

let, const는 블록 스코프에서 유효합니다.

0개의 댓글