我遵循始终使用绝对比较'==='的做法,但是一些有学问的同事认为,在对特定比较非常有信心的情况下,这对于类型检查是不必要的计算时间浪费类型。
所以我的问题是这个;实际上,在比较期间总是进行类型检查值会有什么重大的性能损失?
答案 0 :(得分:4)
如果对象已经是相同类型,则可能没有显着的性能差异。在进行数据比较之前,两个运算符都必须查找并比较两个参数的类型。
如果对象的类型不同,===
应该更快一些,因为它可以立即返回false
,而==
会强制其他类型的参数之一,然后进行比较。
答案 1 :(得分:1)
在jsperf上有一个测试:
看看并亲自尝试:http://jsperf.com/equalitydoubletriple/4
修改:此测试可能会更好,因为@dystroy在下面的评论中提及:http://jsperf.com/equalitydoubletriple/5
答案 2 :(得分:1)
==
和===
之间没有显着的性能差异。它们之间的唯一区别是类型比较。即使2个条件具有不同类型,也可以使用==
比较。 ===
比较仅接受2种相同类型条件之间的比较。示例:当int
和char
与==
进行比较时,无法使用===
比较。