js == 与 === 性能问题
从入门就有人教我,===的性能比==好很多 于是做了一个小测试
console.log(new Date())
for (let i = 0; i < 10000000; i++) {
i === i
}
console.log(new Date())
console.log('==============================')
console.log(new Date())
for (let j = 0; j < 10000000; j++) {
j == j
}
console.log(new Date())
两者输出时间差几乎是一样的,于是进行改进,加大了循环次数, 输出结果却是==的消耗时间明显小于===的消耗时间, 有没有大佬能指正一下我在哪一步出了问题
5 回复
那是因为你比较的两个东西本来就一样,你试试看下面类型不一样的比较呢?
let t1 = Date.now();
for (let i = 0; i < 10000000; i++) {
i === '1'
}
console.log(Date.now() - t1);
console.log('==============================')
let t2 = Date.now();
for (let j = 0; j < 10000000; j++) {
j == '1'
}
console.log(Date.now() - t2);
== 要做类型转换分别进行两边的比较,所以这种情况下会慢很多
使用benchmark.js来做吧
同意一楼的看法
@hyj1991 确实有了很大的差距,多谢指点
@i5ting 谢谢回复,受我以渔,非常受用