이 코드가 있습니다. 나는 올바른 출력으로 기대 한 의 'i' (의견에서) 값을 썼습니다. 그러나 출력/경고는 다릅니다.누군가이 바이올린의 출력을 설명 할 수 있습니까?
바이올린 : http://jsfiddle.net/e2jbno4a/
코드 :
var i = 10;
function outer() {
alert(i); // 10
var i = 5;
alert(i); // 5
function inner() {
var i = 20;
}
inner();
alert(i); // 5
if (1) {
var i = 30;
}
alert(i); // 5
setTimout(function() {
alert(i); // 5
}, 100);
}
outer();
누군가가 나를 출력에 대한 이유를 알려 수 있습니까? 아니면 특정 개념을 설명하는 포인터일까요?
http://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript 플러스에 http : // javascriptissexy. com/javascript-variable-scope-and-hoisting-described/ – Cheery
개념은 "어휘 범위"및 "호이 스팅" – elclanrs