以下是测试:http://jsperf.com/forloopspeed
正如您所看到的,Firefox中的差异很大,在Safari中出现的程度要小得多,而在Chrome和Opera中则不存在。
类似的事情也发生在while循环中:http://jsperf.com/whileloopspeed
答案 0 :(得分:2)
我的猜测是,检查i
(数字)是否为假值比检查true
/ false
(比较结果)的计算成本更高。
答案 1 :(得分:2)
我认为,与给定ToBoolean()
相比,在给出number
时,对表达式结果执行的内部boolean
会慢一点。
In this test使用!!
从布尔值与数字转换为布尔值时,性能会有所不同。
答案 2 :(得分:2)
这看起来像Jaegermonkey特有的一些问题。如果我在Tracemonkey下运行测试,效果就会消失。