1. 程式人生 > 其它 >Day1-ES6-2-let & const

Day1-ES6-2-let & const

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作為頂層物件。