ES6中的作用域

2021-08-02 16:25:26 字數 531 閱讀 2744

1.for中設定迴圈變數的那部分是乙個父作用域,而迴圈體內部是乙個單獨的子作用域。 例:

for(let i = 0; i < 3; i++)

輸出三次test,因為是兩個不同作用域,互不影響

2.var a =

;for

(var i =

0; i <

10; i++);

}a[6]

();上面**中,變數ivar命令宣告的,在全域性範圍內都有效,所以全域性只有乙個變數i。每一次迴圈,變數i的值都會發生改變,而迴圈內被賦給陣列a的函式內部的console.log(i),裡面的i指向的就是全域性的i。也就是說,所有陣列a的成員裡面的i,指向的都是同乙個i,導致執行時輸出的是最後一輪的i的值,也就是10。

es6 函式引數作用域

函式的引數會形成乙個單獨的作用域 因為函式引數形成乙個單獨作用域,所以foo的引數x和匿名函式中的x是處於同乙個作用域中。foo函式內部使用的x就是引數x,給x賦值為3,但是後邊接著執行y 修改x 2,所以最後輸出2 var x 1 function foo x,y function foo 2 下...

ES6的塊級作用域

為什麼要使用塊級作用域?1.在預編譯階段,變數的宣告會被提公升到作用域頂部,而初始化操作依舊留在原處執行,在該作用域中未定義變數的地方也能訪問到該變數,但是此時變數尚未初始化,所以其值為undefined,為此es6引入塊級作用域來強化對變數生命週期的控制 塊級宣告 1.塊級作用域用於宣告在指定塊的...

ES6的塊級作用域

let為j ascript新增了塊級作用域,外層作用域無法獲取到內層作用域,這樣非常安全。即使外層和內層都使用相同變數名,也都互不干擾。例如 1 function test 7 console.log a 輸出 18 910 test 呼叫函式 塊級作用域,允許函式可以在塊級作用域中宣告。在塊級作用...