这段代码:
var i = 10000000000; do { i--; } while (i !== 0); //Result: 38 second. var i = 10000000000; do {} while (i-- !== 0); //Result: 27 second. //(same result with while (i--) var i = 10000000000; do {} while (i-- | 0); //Result: 13.5 second.
问题是:为什么这些版本会同时获得较小的i值?如果我从i中减去一个零;所有版本都需要2.2秒. (甚至在JIT优化后测试 – 仅在V8中测试)
似乎合乎逻辑的是,第三个版本应该总是更快,但只有非常高的值才会更快.
这只是一种好奇心……实际上并不重要.