先安裝node ,新建1.js檔案,通過node的 cmd進入本地檔案1.js 執行 node 1.js 可以測試以下**。
1.基本用法
let 宣告變數,只在塊級作用域有效。
console.log(a);
//a is not defined
console.log(b); //
2
在for 迴圈中使用,迴圈和迴圈內部分別是單獨的作用域
for(let i=0;i<3;i++)for(let i=0;i<3;i++)
2.不存在變數提公升
console.log(a); //undefined
var a = 1;
console.log(b);
//b is not defined
let b = 2;
3.不允許重複宣告
4.允許塊級作用域之間相互巢狀,外層作用域無法讀取內層作用域變數
總結:在乙個塊級區域內,如果存在let const 宣告的變數你,如果在宣告之前使用就會報錯,稱為「暫時性死區」 因為已經繫結在這個塊級區域內了,跟外部宣告的同名變數沒有關係。
因此:變數一定要在宣告之後使用
const 宣告的是常量 ,不可改變 ,只能宣告的塊級作用域內有效,不存在提公升,存在「暫時性死區」,不可重複宣告。
var
命令和function
命令宣告的全域性變數,依舊是頂層物件的屬性;es6規定,let
命令、const
命令、class
命令宣告的全域性變數,不屬於頂層物件的屬性。也就是說,從es6開始,全域性變數將逐步與頂層物件的屬性脫鉤。
es6 塊級作用域用法
iife 寫法 function 塊級作用域寫法 塊級作用域的出現,實際上使得獲得廣泛應用的立即執行函式表示式 iife 不再必要了。function f function f 上面 在 es5 jscript不支援塊級作用域環境中執行,會得到 i am inside 因為在 if內宣告的函式f會被...
ES6的塊級作用域
為什麼要使用塊級作用域?1.在預編譯階段,變數的宣告會被提公升到作用域頂部,而初始化操作依舊留在原處執行,在該作用域中未定義變數的地方也能訪問到該變數,但是此時變數尚未初始化,所以其值為undefined,為此es6引入塊級作用域來強化對變數生命週期的控制 塊級宣告 1.塊級作用域用於宣告在指定塊的...
ES6的塊級作用域
let為j ascript新增了塊級作用域,外層作用域無法獲取到內層作用域,這樣非常安全。即使外層和內層都使用相同變數名,也都互不干擾。例如 1 function test 7 console.log a 輸出 18 910 test 呼叫函式 塊級作用域,允許函式可以在塊級作用域中宣告。在塊級作用...