CNode

js == 与 === 性能问题

问答
Wwangchaoduo发布于9 年前最后回复9 年前5 回复3444 浏览0 收藏

从入门就有人教我,===的性能比==好很多 于是做了一个小测试

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)

H
hyj1991#1·9 年前

那是因为你比较的两个东西本来就一样,你试试看下面类型不一样的比较呢?


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);

== 要做类型转换分别进行两边的比较,所以这种情况下会慢很多

I
i5ting#2·9 年前

使用benchmark.js来做吧

L
lic121436#3·9 年前

同意一楼的看法

W
wangchaoduo#5·9 年前
引用 i5ting使用benchmark.js来做吧

@i5ting 谢谢回复,受我以渔,非常受用

参与回复
登录后即可参与回复。登录