一 塊級作用域繫結let const var

2021-09-13 16:04:31 字數 555 閱讀 3594

(1) 變數提公升機制:無論在哪宣告,都會被當成在當前作用域頂部宣告的變數,這種機制在很多時候會產生問題。

(2) 如果是在全域性作用域中宣告,會被繫結到window屬性中,示例如下:

var  a = 1;

console.log(a, window.a) //輸出1 1

(3) 同一變數可重複宣告。

(1) let和const的區別在於:let宣告的變數其值可更改,const宣告的變數不可更改。

(2) const可宣告物件,允許修改物件內的屬性,但不可修改繫結。

(3) 塊級作用域,存在於函式內部、塊中,在塊外不可使用。

(4) 出了**塊,會立即銷毀。

(5) 與var的不同:禁止重複宣告,不會繫結到window中,無變數提公升機制。

(6) 可用於for-in、for-of迴圈中,因為每次迴圈會重新宣告賦值let或const變數,所以不影響使用。

(7) 使用塊級作用域時的最佳實踐:在宣告變數時預設使用const,除非變數需要重新賦值才用let,盡量不使用var,這樣可防止某些錯誤的產生。

塊級作用域繫結

1 無論在哪宣告,都會被當成在當前作用域頂部宣告的變數 hosting機制 2 var會覆蓋全域性屬性 1 塊級識別符號,不會被提公升,用臨時死區 tdz 表示 2 let不能覆蓋全域性屬性,只能遮蔽 3 let不能重複定義,即定義乙個已被定義過了的乙個變數 4 for in迴圈和for of迴圈 ...

塊級作用域

跨級作用域本身沒有宣告可以說的,就需要注意兩點 1.跨級作用域內宣告的var變數並不會存在這個塊級作用域內,而是會提公升到非塊級作用域內 2.在塊級作用域內宣告function,在不同瀏覽器會有不同結果,如果是根據條件宣告function的話,請用var func function的形象 但是為什麼...

全域性作用域 塊級作用域

瀏覽器環境有一頂層物件window,window的屬性和var的全域性變數等價。如果用var設定了window物件的內建屬性作為變數,內建屬性值將會被覆蓋。如果是window物件的內建屬性,輸出預設值 非內建則輸出underfined。console.log window.name window.n...