Es6 let命令不允许重复声明
1、let不允许在相同的作用域内,重复声明同一个变量
例一
function func(){
let a1 = 10;
var a1 = 1;
}
//报错
例二
function func(){
let a2 = 10;
let a2 = 1;
}
//报错
2、let不允许在函数内部重新声明参数
例一
function func(arg){
let arg;
console.log(arg);
}
func(2)
原因:变量名跟参数名重复报错
例二
function func(arg){
{
let arg = 5;
console.log(arg);
}
console.log(arg);
}
func(2);
原因:func(arg)相当于参数传的是数值2,加上一个{}相当于一个块级作用域,所以变量arg跟参数arg不重名,所以打印出来的结果一个是5,一个是2。