Day1-ES6-2-let & const
阿新 • • 發佈:2021-07-05
1. let
let 宣告變數,僅在塊級作用域內有效,即let所在程式碼塊內有效。
let不存在變數提升,即需先宣告,再使用。
暫時性死區,在塊級作用域內如存在let宣告的變數,即不受外部影響。此變數僅在此封閉作用域內有效。
在for迴圈中設定迴圈變數的部分即為一個父作用域。
2.const
- 塊級作用域
- 不存在變數提升
- 暫時性死區
const簡單來說即宣告常量,但是對於陣列和物件來說const宣告是確定指標指向的地址。指標指向的地址不可變,但是陣列和物件本身可變,即可通過prop,push新增屬性和元素。
3.頂層物件
var & function 宣告的全域性變數為頂層物件的屬性;let,const,class宣告的全域性變數不屬於頂層物件的屬性。
- windows 瀏覽器中頂層物件
- self 瀏覽器和Web Worker(執行在後臺的js)中的頂層物件
- global node中頂層物件
- this 全域性環境中返回頂層物件,nodejs中this返回的是當前模組,es6中this返回undefined
es2020中引入了globalThis作為頂層物件。