为什么不禁止'VAR'? 我的问题不是'var'和'let'之间的区别。所有这些答案都提倡使用'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;
(成为:{ {1}}在全球范围内)。
如果我错过了什么,那对我很有帮助。 ]
答案 0 :(得分:0)
我去年才考虑过使用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
偶尔会有用。