let
, const
는 호이스팅이 되지 않음ex 1)
print();
function print() {
console.log("a");
}
ex 2)
function print() {
console.log("a");
}
print(); // ex 1과 ex 2는 같음
변수가 선언되기도 전에 참조하여 출력하고 있지만,
error가 발생하지 않음
console.log(num); //undefined
var num = 10;
var
가 아닌 let
, const
키워드로 변수 생성 시, 참조 오류 발생
//Uncaught ReferenceError: num is not defined
console.log(num);
let num = 10;
let
, const
는 undefined라 할지라도 정확한 값을 넣어줘야 접근 가능
printName()
함수가 선언도 되기 전에 호출하고 있으나,
잘 호출됨
printName(); // 윤희
function printName(){
console.log('윤희');
}
함수 선언식은 is not a function
오류
printName(); // printName is not a function
var printName = () => {
console.log("윤희");
};
let
, const
키워드로 선언 시 참조 오류
//Uncaught ReferenceError: printName is not defined
printName();
let printName = function(){
console.log('윤희');
}
다음 코드의 실행 결과를 예측하시오.
console.log(myVar);
var myVar = 10;
console.log(myVar);
다음 코드의 실행 결과를 예측하시오.
var num = 5;
console.log(num); //
function num() {
return 10;
}
console.log(num); //
console.log(num()); //
다음 코드의 실행 결과를 예측하시오.
var x = 10;
function test() {
console.log(x); //
var x = 5;
console.log(x); //
}
test();
console.log(x); //
레코드 (record)
와 아우터 (outer)
로 구성되어져 있음레코드 (record)
아우터 (outer)
후입 선출 (Last In First Out, LIFO)