- let 命令
** 不允許重復聲明
每一層 {} 都為一個塊級 **
let 只會在塊級作用域有效
if(true){
let a = 1;
var b = 2;
}
a // a is not defind
b // 2
let 不會發生"變量提升",所以在變量聲明前使用會報錯
a // ReferenceError
let a = 1;
塊級作用域內存在let命令,它所聲明的變量就會綁定這個區域,并且不受外部影響
let a = 1;
if(true){
a // ReferenceError
let a = 2
}
參數x的默認值是另一個參數y,而此時y還沒有聲明
function fn(x = y, y = 2){
return [x, y];
}
fn(); // 報錯