【发布时间】:2018-02-16 19:14:00
【问题描述】:
ECMAScript 6 为变量声明引入了 let 和 const 关键字。
话虽如此,有什么理由使用var 来声明一个变量?
【问题讨论】:
ECMAScript 6 为变量声明引入了 let 和 const 关键字。
话虽如此,有什么理由使用var 来声明一个变量?
【问题讨论】:
向后兼容性(编写/维护 ES5)或编写/维护草率代码的能力。
var,不像let 或const 可以在同一范围内多次重新定义一个变量。特别是如果您要重构已经很混乱的东西,您可能需要坚持使用var 一段时间。
有大量代码在多个for 循环中重新定义i,如果将一个实例替换为let,则会引发错误。
这是 linting 工具多年来一直能够捕捉到的东西,但这并不意味着所有粗略的代码都消失了。
【讨论】:
主要原因是向后兼容性。除此之外,我看不到。因此,如果您使用的是转译器,那么使用 var 真的没有意义。除非你需要一个全局变量,但那是邪恶的。
【讨论】:
window.myVar。这样就更难错过了。
window。
let 创建一个全局变量,因此即使这样您也不需要var。
let/const variables cannot be declared multiple times,这对于全局变量来说通常是可取的。