個人分類: JS類
變量---->局部變量和全局變量,
作用域:在某個空間範圍內,可以對數據進行讀寫操作
局部作用域和全局作用域
js中沒有塊級作用域—一對括號中定義的變量,這個變量可以在大括號外面使用
函數中定義的變量是局部變量
作用域鏈:變量的使用,從裏向外,層層的搜索,搜索到了就可以直接使用了
層層搜索,搜索到0級作用域的時候,如果還是沒有找到這個變量,結果就是報錯
在 JavaScript 中, 對象和函數同樣也是變量。
在 JavaScript 中, 作用域爲可訪問變量,對象,函數的集合。
JavaScript 函數作用域: 作用域在函數內修改。
JavaScript 局部作用域
變量在函數內聲明,變量爲局部作用域。
局部變量:只能在函數內部訪問。
因爲局部變量只作用於函數內,所以不同的函數可以使用相同名稱的變量。
局部變量在函數開始執行時創建,函數執行完後局部變量會自動銷燬。
JavaScript 全局變量
變量在函數外定義,即爲全局變量。
全局變量有 全局作用域: 網頁中所有腳本和函數均可使用。
如果變量在函數內沒有聲明(沒有使用 var 關鍵字),該變量爲全局變量。
JavaScript 變量生命週期
JavaScript 變量生命週期在它聲明時初始化。
局部變量在函數執行完畢後銷燬。
函數參數
函數參數只在函數內起作用,是局部變量。
HTML 中的全局變量
在 HTML 中, 全局變量是 window 對象: 所有數據變量都屬於 window 對象。
作用域鏈:從子集作用域返回到父集作用域的過程
局部有能力去改外面(全局)的值
預解析:
預解析:在當前作用域下,js運行之前,會把帶有var和function關鍵字的事先聲明,並在內存中安排好。然後再從上到下執行js語句。
預解析只會發生在通過var定義的變量和function上。