禁止重复声明
🎈引用
如果一个标识符已经在代码块内部被定义,那么在此代码块内使用同一个标识符进行let
声明就会导致抛出错误。例如:
var count = 30;
//在这里会出现语法错误,变量名已经被声明
let count = 50;
在上述代码中,count
变量被声明了两次:一次使用var
,另一次使用let
。因为let
不能在同一作用域内重复声明一个已有标识符,此处的let
声明就会抛出错误。另一方面,在嵌套的作用域内使用let
声明一个同名的新变量,则不会抛出错误,以下代码对此进行了演示:
var count = 30;
if (condition){
//当condition为true时,下面使用let声明同样的变量名只在当前代码块中被声明初始化,与上面的不冲突
let count = 50;
//其他代码
}else{
//在这里打印count会在控制台(console)中显示30
console.log(count)
}
此处的le
t声明并没有抛出错误,这是因为它在if
语句内部创建了一个新的count
变量,而不是在同一级别再次创建此变量。在if
代码块内部,这个新变量会屏蔽全局的count
变量,从而在局部阻止对于后者的访问,在else
分支中一九五可以访问全局count