为什么不禁止'VAR'? 我的问题不是关于"var"和"let"之间的区别。所有这些答案都在提倡使用"让"的好处。 我的问题是:为什么不坦率地说"不要再使用'var'了"? 有理由不那么直接吗?
"var"仍然在许多严肃的教程网站上使用:Mozilla MDN,w3schools... 我想知道是否有隐藏的原因让我失踪。
下面有一个答案:旧版(旧浏览器不支持 ES6) 这是唯一的原因吗? 任何性能原因? 还是一些花哨的吊装用途?
[这是我原始帖子的其余部分...
var arr = []; // -> const arr = [];
var obj = {}; // -> const obj = {};
var temp; // -> let temp;
var f = function(){}; // -> const f = function(){};
这样做,我认为变量可能表现得像var
变量(提升等)的唯一方式是一个 - 不幸的是 - 未声明的变量:x = sthg;
在某个函数中(在全局范围内成为:var x = sthg;
)。 如果我错过了什么,它将对我有很大帮助。]
去年我唯一考虑使用var
的时候是利用它被吊在代码块之外,特别是使用条件。像这样人为的例子:
const oneOrZero = shouldBeOne => {
if (shouldBeOne) {
var test = 1
} else {
var test = 0
}
return test
}
在这种情况下,您可以将var
替换为let
,但这总是让我感到有点混乱:
const oneOrZero = shouldBeOne => {
let test
if (shouldBeOne) {
test = 1
} else {
test = 0
}
return test
}
最后,我所做的是利用三元运算符和const
。这还有一个额外的优点,即在检查初始条件后不可重新分配,这通常是我的意图:
const oneOrZero = shouldBeOne => {
const test = shouldBeOne
? 1
: 0
return test
}
TL;大卫:我已经一年多没有使用var
了。const
更可取,并且通常会迫使我编写更好的代码。let
偶尔有用。