禁止重复声明

🎈引用

 

如果一个标识符已经在代码块内部被定义,那么在此代码块内使用同一个标识符进行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)
}

 

此处的let声明并没有抛出错误,这是因为它在if语句内部创建了一个新的count变量,而不是在同一级别再次创建此变量。在if代码块内部,这个新变量会屏蔽全局的count变量,从而在局部阻止对于后者的访问,在else分支中一九五可以访问全局count

results matching ""

    No results matching ""