如果我们有两种分配这个变量的方法,要么
if(condition){
var a = "Condition is true";
} else {
var a = "Condition is false";
}
或者
var a = "Condition is false";
if(condition){
a = "Condition is true";
}
考虑到变量总是只被写入一次而不是可能被写入两次,并且在这两种情况下都使用了条件,我个人认为前者会更快。
由于 Javascript 是我最流利的语言,因此创建了这个 jsperf,而且似乎两种变体的速度大致相同。这是为什么?
- 写入变量的成本有那么小吗?
- 是否正在进行使两种情况相等的优化?(在 Firefox 的情况下,这两种情况似乎是相等的!)
如果您对此行为有解释,其他语言的示例与此相矛盾,或者我的 jsperf 可能只是错误的,我会对此非常感兴趣。