var x = 'global';
function foo() {
console.log(x); // (1)
var x = 'local';
}
foo();
console.log(x); // global
JavaScript
복사
정답
함수 스코프 + var 호이스팅 
var a = 1;
function test() {
console.log(a); // (1)
var a = 2;
console.log(a); // (2)
}
test();
console.log(a); // (3)
JavaScript
복사
정답
let 과 var 비교 
function bar() {
console.log(b); // (1)
console.log(c); // (2) ← 주석 풀면 어떤 에러 발생?
var b = 10;
let c = 20;
console.log(b, c); // (3)
}
bar();
JavaScript
복사
정답
함수 선언 vs 함수 표현식 호이스팅 
sayHi(); // (1)
sayHello(); // (2) ← 주석 풀면 어떤 결과?
function sayHi() {
console.log('Hi');
}
var sayHello = function () {
console.log('Hello');
};
JavaScript
복사
정답
중첩 스코프와 var 
var x = 'outer';
function outer() {
console.log(x); // (1)
var x = 'inner';
function inner() {
console.log(x); // (2)
var x = 'deep';
console.log(x); // (3)
}
inner();
}
outer();
console.log(x); // (4)
JavaScript
복사
정답
for 루프와 var vs let 
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log('var:', i), 0);
}
for (let j = 0; j < 3; j++) {
setTimeout(() => console.log('let:', j), 0);
}
JavaScript
복사
정답
함수 인자와 호이스팅 
function demo(x) {
console.log(x); // (1)
var x = 20;
console.log(x); // (2)
}
demo(10);
JavaScript
복사
정답
함수 내부 호이스팅 우선순위 
function foo() {
console.log(typeof bar); // (1)
var bar = 100;
function bar() {}
console.log(typeof bar); // (2)
}
foo();
JavaScript
복사
정답
JavaScript
복사
정답
JavaScript
복사
정답
JavaScript
복사
정답
JavaScript
복사
정답