JavaScript let 关键字
-
JavaScript let 关键字
ES2015引入了两个重要的新JavaScript关键字:let和const。这两个关键字在JavaScript中提供了块作用域变量(和常量)。在ES2015之前,JavaScript只有两种类型的范围:全局作用域 和函数作用域。 -
全局作用域
在全局作用域内声明的变量(在任何函数之外)具有全局作用。
尝试一下var carName = "Volvo"; // 这里的代码可以使用carName function myFunction() { // 这里的代码也可以使用carName }
可以从JavaScript程序中的任何位置访问全局变量。 -
函数作用域
在函数内声明的变量具有函数作用域(局部作用域)。
尝试一下// 这里的代码不能使用carName function myFunction() { var carName = "Volvo"; // 这里的代码可以使用carName } // 这里的代码不能使用carName
只能从声明它们的函数内部访问局部变量。 -
JavaScript块作用域
使用var关键字声明的变量不能具有块作用域。可以从块外部访问块{}内声明的变量。{ var x = 2; } // x可以在这里使用
在ES2015之前,JavaScript没有块作用域。使用let关键字声明的变量可以具有块范围。无法从块外部访问块{}内声明的变量:{ let x = 2; } // x 不能在这里使用
-
-
浏览器支持
letInternet Explorer 11或更早版本不完全支持let关键字。下表定义了第一个完全支持该关键字的浏览器版本:关键字 Internet Explorer Chrome FireFox Safari Opera 关键字名称 let IE/Edge 12 Chrome 49 Firefox 44 Safari 11 Opera 36 开始支持时间 2015,7 2016,3 2015,1 2017,9 2016,3 -
-
函数作用域
在函数内声明时使用var声明和let声明非常相似。他们都有函数作用域:function myFunction() { var carName = "Volvo"; // 函数作用域 }
function myFunction() { let carName = "Volvo"; // 函数作用域 }
-
全局作用域
在函数内声明时使用var声明和let声明非常相似。他们都有全局作用域:var x = 2; // 全局作用域
let x = 2; // 全局作用域
-
-
重新声明
在程序中的任何位置允许重新声明JavaScript var变量:
尝试一下var x = 2; // 现在x是 2 var x = 3; // 现在x是 3
不允许使用let在相同范围内或在同一块中重新声明var变量:var x = 2; // 容许 let x = 3; // 不容许 { var x = 4; // 容许 let x = 5 // 不容许 }
不允许使用let在相同范围内或在同一块中重新声明let变量:let x = 2; // 容许 let x = 3; // 不容许 { let x = 4; // 容许 let x = 5 // 不容许 }
不允许使用var在相同范围内或在同一块中重新声明let变量:let x = 2; // 容许 var x = 3; // 不容许 { let x = 4; // 容许 var x = 5 // 不容许 }
允许使用let,在另一个范围或另一个块中重新声明变量:
尝试一下let x = 2; // 容许 { let x = 3; // 容许 } { let x = 4; // 容许 }
-