<分区>
为什么我可以多次声明一个变量?我预计会出现错误。
此代码引发错误:
let a = true;
let a = false;
未捕获的语法错误:标识符“a”已被声明
为什么这也不会引发错误?
var b = true;
var b = false;
预期:未捕获的语法错误:标识符“b”已被声明
<分区>
为什么我可以多次声明一个变量?我预计会出现错误。
此代码引发错误:
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;
但这不适用于 let
或 const
因为 let
和 const
是 block 作用域的,而var
是函数范围的。
关于javascript - 为什么我可以多次声明一个javascript var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54760902/