DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JavaScript中的變量聲明早於賦值分析
JavaScript中的變量聲明早於賦值分析
編輯:關於JavaScript     
如下
復制代碼 代碼如下:var a = 3;

實際有兩個步驟:
1 初始化a為undefined
2 a賦值3

因此會出現一些“匪夷所思”的現象,即JS中變量可以先使用後聲明。這在Java中是不允許的。

復制代碼 代碼如下:System.out.println(a);
int a = 1;

編譯通不過。但JS可以,如下
復制代碼 代碼如下:alert(a);
var a;

雖然是undefined,但不會報錯。說明a的確聲明了,且為undefined。

如果只是“alert(a)”,沒有“var a”的話JS引擎會報錯的。
復制代碼 代碼如下:alert(a);

FF中如下

雖然可以先使用再聲明,但這樣會造成賦值的效果丟失。如下
復制代碼 代碼如下:
alert(a);
var a = 1;


這次輸出的仍然是undefined而非1。

又如,
復制代碼 代碼如下:
alert('a' in window); // true
var a;

雖然代碼形式上寫在alert後,引擎仍然先自動處理var的聲明。最後輸出的是true。

明白了這些就不難理解下面的代碼運行結果了
復制代碼 代碼如下:
if (!("a" in window)) {
var a = 1;
}
alert(a);

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved