home
자바
home
🙍🏽‍♂️

변수, 호이스팅, TDZ(Temporal Dead Zone)

강의명
자바스크립트 중급 강좌
강의순서
1
과목
⚽자바스크립트
수강상태
완료

var는 한 번 선언된 변수를 다시 선언할 수 있다. (let은 불가)

var name = 'jjw'; console.log(name); //jjw var name = 'jungjaewoong'; console.log(name); //jungjaewoong
JavaScript
복사

var는 선언하기 전에 사용할 수 있다.

console.log(name); //undefined var name = 'jjw';
JavaScript
복사
var로 선언한 변수는 코드가 실제로 이동하진 않지만 최상위로 끌어올려진것처럼 동작한다.
var name; console.log(name); //undefined name = 'jjw';
JavaScript
복사

호이스팅

스코프 내부 어디서든 변수 선언은 최상위에 선언된것처럼 행동
선언은 호이스팅 되지만 할당은 호이스팅되지 않는다.

변수의 선언 과정

var
1.
선언 및 초기화 단계
2.
할당 단계
let
1.
선언 단계
2.
초기화 단계
3.
할당 단계
const
1.
선언 + 초기화 + 할당

스코프

var : 함수 스코프 (function-scopred)
let, const : 블록 스코프 (block-scoped)
모든 코드 블럭 내에서 선언된 변수는 코드 블럭 내에서만 유효하며, 외부에서는 접근할 수 없다.
var는 이제 사용하지 않고, let과 const를 권장한다. 예측 가능한 결과를 내고, 버그를 줄일 수 있다.