ES6 学习(let篇)

- 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();  // 报错

你可能感兴趣的:(ES6 学习(let篇))