【发布时间】:2018-08-15 07:52:35
【问题描述】:
为什么 var 允许重复声明,但为什么 const 和 let 不允许重复声明?
var 是允许重复声明
xx=1;
xx=2;
console.log(xx+xx);//4
var xx=1;
var xx=2;
console.log(xx+xx);//4
但是let和const不允许重复减速
const yy=1;
const yy=2;
console.log(yy+yy);//Uncaught SyntaxError: Identifier 'yy' has already been declared",
let zz=1;
let zz=2;
console.log(zz+zz);//Uncaught SyntaxError: Identifier 'zz' has already been declared",
我在here 中看到了一些类似的东西,
假设严格模式,
var将允许您在同一范围内重新声明同一变量。另一方面,let不会。
但我想知道为什么let 和const 不允许重新声明?为什么var 会这样做?以及 JavaScript 如何处理这三种类型的减速?
【问题讨论】:
-
为什么什么?为什么
let不允许重新声明?或者为什么var会这样做? -
因为
const就像它的名字所说的那样,它是不变的。 -
你在寻找什么样的答案?
-
让范围敏感,var 不是。我认为这个选择是为了迫使 js 用户不要陷入不良习惯。
-
var 是一个古老的东西。引入了 let 和 const ,因此 JS 代码更严格,意外行为更少。如果您尝试重新声明它,这不是正常行为。要么选择其他标识符,要么更改值(如果它不是 const)。或者你把你的代码分成两个函数,因为你在这个函数中有太多的代码行。它有助于思考你自己的代码。
标签: javascript angular typescript variables var