ECMAScript 6 新特性之-塊級作用域 let
最近更新時間 2020-01-10 13:33:29
let 語句聲明一個塊級作用域的本地變量,並且可選的將其初始化為一個值。
let 聲明的變量只在其聲明的塊或子塊中可用,這一點,與 var 相似。二者之間最主要的區別在於 var 聲明的變量的作用域是整個封閉函數。
//ECMAScript 6 | ES6
function varTest() {
var x = 1;
{
var x = 2; // 同樣的變量!
console.log(x); // 2
}
console.log(x); // 2
}
function letTest() {
let x = 1;
{
let x = 2; // 不同的變量
console.log(x); // 2
}
console.log(x); // 1
}
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.
}
let x = 1;
switch(x) {
case 0:
let foo;
break;
case 1:
let foo; // SyntaxError for redeclaration.
break;
}