編輯 看起來這是我的一個問題和我對jsfiddle的使用:?試圖完全理解JavaScript提升
我一直在閱讀一些關於最近吊裝的文章,一個是by Nicholas Zakas,另一個是by Ben Cherry。
我試着去下面的例子,只是考驗我自己,以確保我完全掌握它,但有一個問題,林主要與這個例子中,
if (!('a' in window)) {
var a = 1;
}
console.log(a);
而不是註銷undefined
其記錄1
的。如果我正確地理解了所有內容,a
應該是undefined
,因爲它的應該存在於窗口範圍內,因爲var語句被懸掛在最上面,所以它不應該被賦值。
但預期如下的作用下,
(function bar(){
console.log(foo);
var foo = 10;
console.log(baz);
})();
foo
是undefined
,而沒有定義baz
。這兩個例子都有fiddle。真的只是想把這個包裹起來。自從這些文章寫入以後有什麼改變了嗎?如果任何人都可以闡明這一點,將不勝感激。我在測試時使用Chrome 14。
我跑在谷歌瀏覽器小提琴和它打印'undefined'。有關提示的一個很好的解釋,你可以看看* O'Reilly JavaScript Patterns *。 有一個專門的**段**。 – user278064
是的,顯然這是由於我沒有正確使用jsfiddle doh。 – Loktar