'=='和'==='之间是否存在显着的性能差异?

时间:2013-10-10 08:30:02

标签: javascript

我遵循始终使用绝对比较'==='的做法,但是一些有学问的同事认为,在对特定比较非常有信心的情况下,这对于类型检查是不必要的计算时间浪费类型。

所以我的问题是这个;实际上,在比较期间总是进行类型检查值会有什么重大的性能损失?

3 个答案:

答案 0 :(得分:4)

如果对象已经是相同类型,则可能没有显着的性能差异。在进行数据比较之前,两个运算符都必须查找并比较两个参数的类型。

如果对象的类型不同,===应该更快一些,因为它可以立即返回false,而==会强制其他类型的参数之一,然后进行比较。

答案 1 :(得分:1)

在jsperf上有一个测试:

看看并亲自尝试:http://jsperf.com/equalitydoubletriple/4

修改:此测试可能会更好,因为@dystroy在下面的评论中提及:http://jsperf.com/equalitydoubletriple/5

答案 2 :(得分:1)

=====之间没有显着的性能差异。它们之间的唯一区别是类型比较。即使2个条件具有不同类型,也可以使用==比较。 ===比较仅接受2种相同类型条件之间的比较。示例:当intchar==进行比较时,无法使用===比较。