有什么理由继续使用 var 吗?



为什么不禁止'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偶尔有用。

最新更新