我遵循始终使用绝对比较 '===' 的做法,但一些博学的同事认为,在您对特定比较类型非常有信心的情况下,这是在类型检查上不必要地浪费计算时间。
所以我的问题是这样的;在比较期间总是对类型检查值有任何显着的性能影响吗?
我遵循始终使用绝对比较 '===' 的做法,但一些博学的同事认为,在您对特定比较类型非常有信心的情况下,这是在类型检查上不必要地浪费计算时间。
所以我的问题是这样的;在比较期间总是对类型检查值有任何显着的性能影响吗?
如果对象已经属于同一类型,则可能没有显着的性能差异。在进行数据比较之前,两个运算符都必须查找并比较两个参数的类型。
如果对象是不同的类型,===
应该快一点,因为它可以false
立即返回,而==
将一个参数强制转换为另一种类型,然后执行比较。
在 jsperf 对此进行了测试:
看看并自己尝试一下:http: //jsperf.com/equalitydoubletriple/4
编辑:这个测试可能会更好,正如@dystroy 在下面的评论中提到的那样:http: //jsperf.com/equalitydoubletriple/5
==
和之间没有显着的性能差异===
。它们之间的唯一区别是类型比较。==
即使两个条件的类型不同,也可以使用比较。===
比较只接受 2 个相同类型条件之间的比较。示例:当int
和char
可以与比较时==
,===
不能使用比较。