호이스팅이란 var 로 선언한 표현식나 function 선언문 등을 실행 단계에서 해당 Scope의 맨 위로 옮기는 것
중복 선언이 가능
var a = 5;
console.log(a);
var a = 15;
console.log(a);
var a = 25;
console.log(a);
5
15
25
중복 선언이 불가능, 재할당은 가능
var a = 5;
console.log(a);
var a = 15;
console.log(a);
var a = 25;
console.log(a);
오류 메세지 출력
Uncaught SyntaxError: Identifier 'a' has already been declared
재할당은 가능
a = 25
중복 선언이 불가능, 재할당 불가능
let a = 5;
console.log(a);
let a = 15;
console.log(a);
a = 25;
console.log(a);
오류 메세지 출력
Uncaught SyntaxError: Identifier 'a' has already been declared
//선언적 함수
function check(){
document.write('호출하면 동작함<br>');
}
//함수 호출
check();
호출하면 동작함
//익명 함수
var play = function(){
document.write('운동을 좋아해요~~<br>');
};
play();
var play2 = function(item){
document.write(item + '를 좋아해요<br>');
};
//함수 호출
play2('축구');
운동을 좋아해요~~
축구를 좋아해요