作用域和作用域鏈及預解析

個人分類: JS類
變量---->局部變量和全局變量,

作用域:在某個空間範圍內,可以對數據進行讀寫操作

局部作用域和全局作用域
js中沒有塊級作用域—一對括號中定義的變量,這個變量可以在大括號外面使用
函數中定義的變量是局部變量
作用域鏈:變量的使用,從裏向外,層層的搜索,搜索到了就可以直接使用了
層層搜索,搜索到0級作用域的時候,如果還是沒有找到這個變量,結果就是報錯

在 JavaScript 中, 對象和函數同樣也是變量。

在 JavaScript 中, 作用域爲可訪問變量,對象,函數的集合。

JavaScript 函數作用域: 作用域在函數內修改。

JavaScript 局部作用域

變量在函數內聲明,變量爲局部作用域。

局部變量:只能在函數內部訪問。

因爲局部變量只作用於函數內,所以不同的函數可以使用相同名稱的變量。

局部變量在函數開始執行時創建,函數執行完後局部變量會自動銷燬。

JavaScript 全局變量

變量在函數外定義,即爲全局變量。

全局變量有 全局作用域: 網頁中所有腳本和函數均可使用。

如果變量在函數內沒有聲明(沒有使用 var 關鍵字),該變量爲全局變量。

JavaScript 變量生命週期

JavaScript 變量生命週期在它聲明時初始化。

局部變量在函數執行完畢後銷燬。

函數參數

函數參數只在函數內起作用,是局部變量。

HTML 中的全局變量

在 HTML 中, 全局變量是 window 對象: 所有數據變量都屬於 window 對象。

作用域鏈:從子集作用域返回到父集作用域的過程

局部有能力去改外面(全局)的值

預解析:

預解析:在當前作用域下,js運行之前,會把帶有var和function關鍵字的事先聲明,並在內存中安排好。然後再從上到下執行js語句。

預解析只會發生在通過var定義的變量和function上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章