javascript - 为什么不推荐使用 var?

标签 javascript ecmascript-6 deprecated var let

最近在 ES6 发布后,许多消息来源建议我使用“const”和“let”而不是“var”,并且我应该停止在我的 JavaScript 中使用“var”。

我想知道的是,如果“var”在所有观点上都没有优于“let”,那么他们为什么不直接修复 var,甚至弃用“var”而不是让它们并存?

最佳答案

向后兼容性。

您说得对,使用 var 没有真正的优势。在 let - 如果您在函数的开头定义它们,它们的含义基本相同。

你是对的,没有真正的理由使用 var 编写新代码(可能除了 this ,如果相关的话)。

虽然 Internet 上有些页面已有数十年历史,但没有人会重写它们。从语言中删除 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)

如果 var 被更改为类似于 let 的行为,那么 console.log 将由于范围差异而导致引用错误。

关于javascript - 为什么不推荐使用 var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47465515/

相关文章:

javascript - 使用 jQuery 生成无序列表

typescript - 使用 Typescript 时,es6 Map() 不会编译为 es5

javascript - 手动触发日期选择器 onselect 事件

javascript - .env 不适用于 AVA

javascript - 如何在回调中访问类的 this ?

javascript - 对象解构和解构赋值之间的区别?

php - 函数 split() 已弃用并爆炸 .... undefined offset : 1 E_NOTICE Error in file

android - 用 FragmentActivity 替换已弃用的 TabActivity

c# - 将 CAPICOM 替换为 .NET,验证证书

javascript - 很难理解 Javascript 中的 "Probably Equals"