질문은, 다음과 같은 경고 무슨 :자바 스크립트 리프팅 - 데이비드 Shariff 퀴즈
function bar() {
return foo;
foo = 10;
function foo() {}
var foo = '11';
}
alert(typeof bar());
과 대답은, 기능.
내 질문 :
- 바 아닌가는()의 반환 값으로 대체? 그렇지 않다면, 왜?
- foo = 10이 아님; 꼭대기에 올라가고 있니? 다른 두 할당 문은 발생되지 않습니다
function bar() { var foo = function() {}; return foo; // function ends here foo = 10; foo = '11'; }
:
"no-op"란 무엇입니까? –
@GeorgeKatsanos [No operation or change.] (https://en.wikipedia.org/wiki/NOP)이 경우'var'는'foo'로 아무 것도하지 않습니다. 왜냐하면 이미' 함수 '([§10.5, steps 5 and 8.c] (http://ecma-international.org/ecma-262/5.1/#sec-10.5)). –
그래서 나는 그것을 직선적으로 얻는다. 이유 함수는 경고를 받는다. 반환되기 전에 foo 선언을 올려 놓기 때문이다. 많은 감사합니다, 그것은 그것을 깨끗하게한다. 나는 https://gist.github.com/MattSurabian/8867307을 확인하고 있었고 그의 설명은 같지 않거나 충분히 명확하지 않았다. 어떻게 생각해? –