我有這段代碼。我已經寫了'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-explained/ – Cheery 2014-09-24 06:54:27
概念是「詞法範圍」和「提升」 – elclanrs 2014-09-24 06:55:15