最近在 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/