<分区>
现在我们可以编写 ES6 并将其部署到浏览器(使用 Traceur 或 6to5 来支持遗留用户代理),我们有什么理由不使用 let
或 const
作为变量声明的默认关键字?
var
死了吗?如果是,我可以配置我的 linting 工具来拒绝它吗?
<分区>
现在我们可以编写 ES6 并将其部署到浏览器(使用 Traceur 或 6to5 来支持遗留用户代理),我们有什么理由不使用 let
或 const
作为变量声明的默认关键字?
var
死了吗?如果是,我可以配置我的 linting 工具来拒绝它吗?
最佳答案
由于 es5 仅具有变量的函数作用域,因此您的转译器可能正在创建闭包以模拟 let 关键字的功能。如果您在非函数范围内声明变量(例如循环、ifs 等),这可能会影响代码的最终大小。所以这是目前不这样做的原因之一。它也可能使调试更加困惑,尽管这可以使用源映射来缓解。
实际上没有任何其他缺点。变量提升对于来自其他语言的人来说非常困惑,使用 let 可以避免这种潜在的问题。所以如果可以的话,我现在就使用它。
关于javascript - 我有什么理由不使用 "let"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30210940/