JavaScript - 为什么var不被弃用

Leo*_* Li 10 javascript var let deprecated ecmascript-6

最近ES6发布后,许多消息来源建议我使用"const"和"let"而不是"var",我应该停止在我的JavaScript中使用"var".我想知道的是,如果"var"在所有观点上都没有"let"的优势那么他们为什么不修复var,或者甚至弃用"var"而不是让它们彼此并排?

Sha*_*dow 13

向后兼容性.

你是对的,说使用varover 没有真正的优势let(如果你在函数的开头定义它们的含义基本相同).

你说没有真正的理由来编写新代码是对的var.

互联网上有几十年的历史,没有人会改写它们.var从语言中删除没有任何好处.对于像解释的HTML和Javascript这样的语言 - 向后兼容性绝对是强制性的.

这也是他们选择不重新定义的原因var.请参考以下示例代码;

// THIS IS AN EXAMPLE OF BAD CODE. DO NOT COPY AND PASTE THIS.
if (logic) {
    var output = "true"
} else {
    var output = "false"
}
console.log(output)
Run Code Online (Sandbox Code Playgroud)

如果var更改为行为,let那么console.log由于范围差异会导致引用错误.

  • 我同意 - 也许我应该让这更明显。然而,这是一个例子,说明为什么将 `var` 改为表示 `let` 是一个坏主意,这就是意图。 (2认同)