【发布时间】:2012-12-04 10:49:49
【问题描述】:
我已经看到 Google Closure 编译器在 if 子句中做了很多重写。例如:
if (a === 3) {…}
转向
if (3 === a) {…}
如果原语是第一个参数,JavaScript 中的比较是否更快,或者这是什么原因?
【问题讨论】:
-
Google 喜欢 Yoda :)
-
你最好在这里问这个问题:groups.google.com/forum/?fromgroups#!forum/…
-
如果有任何性能优势,可以忽略不计,至少在 Chrome 中:jsperf.com/yoda
-
只是为了防止有人说这个(同样,已经有一个已删除的答案):它不是因为可能写
=而不是==或@987654328 @。 Yoda-coding 是一些人做的事情(可悲),Closure 这样做的理由是零(因为那个原因),它已经知道=不是偶然的。 -
Javascript minification of comparison statements 的可能副本;那里接受的答案是错误的。