【问题标题】:What are some reasons to use var instead of let in javascript? [duplicate]在 javascript 中使用 var 而不是 let 的一些原因是什么? [复制]
【发布时间】:2017-04-23 05:10:52
【问题描述】:

有了新的关键字let 用于在javascript ES6 中声明变量,我再也想不出使用var 的充分理由。到目前为止,我一直在这样做,并且我认为始终使用 let 没有任何不利之处。

今天使用var 的充分理由是什么?今天一直使用let 是个好习惯吗?

【问题讨论】:

  • 这个问题已经回答here
  • 谢谢。我以前读过这个问题(但不是全部)。类似,但没有明确表明是否应该一直使用let
  • 简而言之,Let vs var: Let - 作用域到最近的结束块;没有作为属性绑定到窗口对象。 Var - 作用于最近的函数;作为属性绑定到窗口对象。
  • 答案给出了 letvar 的技术分解,如果有意义,我会使用 var,就像我会在有意义时使用 let 一样(如关于闭包的第二个答案),因此除了技术细节和对您有意义的问题(例如意见)之外,您的问题没有明确的答案。这就像询问在C 中使用signedint 是否有意义(从技术上讲,它们做同样的事情,但它是关于功能和可读性)。
  • 感谢您的评论。我想到目前为止,我还没有遇到过 var 更适合的情况。我一直在使用 let 。这就是为什么我问这个问题是为了看看我错过了什么。

标签: javascript node.js variable-declaration


【解决方案1】:

IMO 除了其范围外,使用var 比使用let 没有明显的优势。一个原因可能是支持较旧的浏览器(如果您不打算使用像 Babel 这样的 ES6 到 ES5 编译器)。

【讨论】:

  • 我同意,如果你总是使用 let 而不是 var,它会使代码更简单,但令我烦恼的是 typeof 在赋值之前给出了一个引用错误。
  • 是的,这是由于时间死区造成的。它恰好使它类似于const 的工作方式。
  • 感谢 TDZ 的指针。我发现这个article 非常有帮助!
  • 不客气。这是一篇很棒的文章。我也有一段时间wrote about TDZ :)
猜你喜欢
  • 2019-01-20
  • 1970-01-01
  • 2018-01-06
  • 2011-04-17
  • 2013-05-23
  • 2015-12-30
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多