在jquery中,let是一個宣告變數的關鍵字,let關鍵字允許宣告一個作用域被限制在塊作用域中的變數、語句或者表示式。let宣告的變數不會在作用域中被提升,它是在編譯時才初始化;let不會在全域性宣告時(在最頂層的作用域)建立window物件的屬性。
本教學操作環境:windows7系統、jquery3.6.0版本、Dell G3電腦。
在jquery中,let是一個宣告變數的關鍵字。
let關鍵字宣告一個塊級作用域的區域性變數,並可以初始化為一個值(可選)。語法:
let name1 [= value1] [, name2 [= value2]] [, ..., nameN [= valueN];
引數
nameN:要宣告的一個或多個變數的名稱,必須是合法的識別符號。
valueN:可選,規定變數的初始值,可以是任意合法的表示式。
範例:
let x = 1; if (x === 1) { let x = 2; console.log(x); // expected output: 2 } console.log(x); // expected output: 1
說明:
let 允許你宣告一個作用域被限制在塊作用域中的變數、語句或者表示式。與 var 關鍵字不同的是,var 宣告的變數作用域是全域性或者整個函數塊的。 var 和 let 的另一個重要區別,let 宣告的變數不會在作用域中被提升,它是在編譯時才初始化(參考下面的暫時性死區)。
就像 const 一樣,let 不會在全域性宣告時(在最頂層的作用域)建立 window 物件的屬性。
可以從這裡瞭解我們為什麼使用 let。
通過在使用 let 變數的作用域頂部宣告它們,可以避免很多問題,但這樣做可能會影響可讀性。
與 var 不同的是,let 只是開始宣告,而非一個完整的表示式。這意味著你不能將單獨的 let 宣告作為一個程式碼塊的主體(這是有道理的,因為宣告的變數無法被存取)。
if (true) let a = 1; // SyntaxError: Lexical declaration cannot appear in a single-statement context
作用域規則
let 宣告的變數作用域只在其宣告的塊或子塊內部,這一點,與 var 相似。二者之間最主要的區別在於 var 宣告的變數的作用域是整個封閉函數。
function varTest() { var x = 1; { var x = 2; // same variable! console.log(x); // 2 } console.log(x); // 2}function letTest() { let x = 1; { let x = 2; // different variable console.log(x); // 2 } console.log(x); // 1} letTest(); varTest();
在全域性作用域中,let 和 var 不一樣,它不會在全域性物件上建立屬性。例如:
var x = 'global'; let y = 'global'; console.log(this.x); // "global" console.log(this.y); // undefined
重複宣告
在同一個函數或塊作用域中重複宣告同一個變數會丟擲 SyntaxError。
if (x) { let foo; let foo; // SyntaxError thrown. }
在 switch 語句中也會觸發這個錯誤,因為它是同一個塊作用域。
let x = 1; switch(x) { case 0: let foo; break; case 1: let foo; // SyntaxError for redeclaration. break; }
然而,需要特別指出的是,一個巢狀在 case 子句中的塊會建立一個新的塊作用域的詞法環境,就不會產生上訴重複宣告的錯誤。
let x = 1; switch(x) { case 0: { let foo; break; } case 1: { let foo; break; } }
【推薦學習:、】
以上就是jquery中關鍵字let的含義是什麼的詳細內容,更多請關注TW511.COM其它相關文章!