为什么不禁止“VAR”? 我的问题不是关于“var”和“let”之间的区别。所有这些答案都在宣扬使用“让”的优势。 我的问题是:为什么不坦率地说“不要再使用'var'了”? 有什么理由不那么直接吗?
“var”仍在许多严肃的教程网站上使用:Mozilla MDN、w3schools ... 我想知道是否有隐藏的原因让我失踪。
下面有一个答案:legacy(不支持 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;DR:我已经一年多没用过 var
了。 const
更可取,通常会迫使我编写更好的代码。 let
偶尔有用。
关于javascript - 有什么理由继续使用 var 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48117489/