왜 다음 코드는 1이 아닌 10의 결과입니까? return 문이 있더라도 함수 bar()가 값을 변경하지 않는 이유는 무엇입니까? bar
의 위에 이동 bar
내부 foo
함수 선언 컴파일 동안 때문에함수에서 함수를 만드는 이유는 무엇입니까?
var foo = 1;
function bar() {
foo = 10;
return;
function foo() {}
}
bar();
alert(foo);
왜 다음 코드는 1이 아닌 10의 결과입니까? return 문이 있더라도 함수 bar()가 값을 변경하지 않는 이유는 무엇입니까? bar
의 위에 이동 bar
내부 foo
함수 선언 컴파일 동안 때문에함수에서 함수를 만드는 이유는 무엇입니까?
var foo = 1;
function bar() {
foo = 10;
return;
function foo() {}
}
bar();
alert(foo);
이다. 이
var foo = 1;
function bar() {
function foo() {}
foo = 10;
return;
}
bar();
alert(foo);
처럼에 대한 hoisting in JS을 읽어보십시오. 그리고 "VAR 리프팅"섹션