javascript - 为什么我可以多次声明一个javascript var?

标签 javascript function ecmascript-6 var

<分区>

为什么我可以多次声明一个变量?我预计会出现错误。

此代码引发错误:

let a = true;
let a = false;

未捕获的语法错误:标识符“a”已被声明

为什么这也不会引发错误?

var b = true;
var b = false;

预期:未捕获的语法错误:标识符“b”已被声明

最佳答案

这是因为 var 有变量提升,但 let(或 const 就此而言)没有。

所以这意味着每次您使用 var 时,它基本上会取消之前的操作,因为对于 JavaScript 解释器来说,您的第一段代码如下所示:

var b;
b = true;
b = false;

但这不适用于 letconst 因为 letconst 是 block 作用域的,而var 是函数范围的。

关于javascript - 为什么我可以多次声明一个javascript var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54760902/

相关文章:

c# - 如何在我的 MVC 应用程序中打开文本文件?

ASP.Net 母版页和文件路径问题

javascript - 无法使用 webpack-dev-server 获取/

javascript - 如何设置状态列表的所有元素

javascript - TypeError : util. promisify 不是函数?

javascript - 迭代对象属性

javascript - Jquery Javascript - 使内联 js 成为一个函数

c - 修改被调用函数中的数组元素

传递给函数的 Python 自由字符串

javascript - 为什么我的单选按钮不可点击?