javascript入門#1.瀏覽器初始化

當瀏覽器開啟的那一瞬間,javascript的直譯器即被啟動,它在執行任何javascript之前所作的事情之一,就是建立一個廣域物件(global object)。這個物件的屬性就是這個javascript程式的廣域變數:

例如window底下有location , screen …..等。

另外在最上層程式中(不屬於函式部份的javascript),你可以用關鍵字this表示廣域物件,亦即:

如果你宣告了以下變數:

var a= 1;

window.a  #1

也會等同於

this.a #1

至於window到底包含哪些屬性(廣愈變數),可以在google的console下輸入window得知,如下圖:

螢幕擷圖存為 2013-12-04 02:18:44
另外這裡還要講一個執行環境(execution context)

每次javascript直譯環境器開始執行一個函式時,它就為這個函式建立一個新的執行環境,廣域物件有它自己的執行環境,而每一個 javascript函式有它自己的執行環境。

另外,每個執行環境都對應一個範圍鍊(scope chain),這個範圍鍊基本上就是一連串的物件。

例如,當我要找變數x的時候(這個過程叫做變數名稱解析variable name resolution),它會先看該scope chain的第一個物件,例如廣域的執行環境下的物件是window,它會去找window下是否有x這個變數(屬性)。

淺談區域變數:
廣域變數為廣域物件的屬性,例如上面例子定義的a為window的屬性。
區域變數則是呼叫物件(call object)下的屬性,呼叫物件的生命比較短,不過作用是一樣的。
當函式的主體被執行,函式的參數與變數就會被當成這個呼叫物件的屬性。

以上為在研究javascript的一點入門觀念,之後會有更多javascript入門系列的文章給大家參考。

發佈留言