今天在看書的過程中,又發現了自己目前對Javascript存在的一個知識模糊點:JS的作用域鏈,所以就通過查資料看書對作用域鏈相關的內容進行了學習。今天學習筆記主要有這樣幾個關鍵字:變數、參數傳遞、執行環境、變數對象、作用域鏈。 1.變數 變數需要註意的有兩點:變數聲明和複製變數值。 變數...
今天在看書的過程中,又發現了自己目前對Javascript存在的一個知識模糊點:JS的作用域鏈,所以就通過查資料看書對作用域鏈相關的內容進行了學習。今天學習筆記主要有這樣幾個關鍵字:變數、參數傳遞、執行環境、變數對象、作用域鏈。
1.變數
變數需要註意的有兩點:變數聲明和複製變數值。
變數聲明肯定大家都很熟悉,在JS中我們都是通過 var 關鍵字進行變數聲明的。JS中規定,通過var聲明的變數會被添加到最近的環境中,如果聲明並且初始化一個變數沒有用到var關鍵字,這個變數會被添加到全局環境中。
關於複製變數值,因為變數的類型不同複製的過程也不同。如果變數是一個基本類型的變數的話,複製變數值時會給新複製出的變數分配新的空間,兩個變數值互不影響;如果變數是一個引用類型的話,複製的操作其實是讓兩個變數指向了同一處記憶體空間,修改其中一個,另一個也會跟著改變。《Javascript 高級程式設計》中的圖例其實很形象