2

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

所以我的问题是这样的;在比较期间总是对类型检查值有任何显着的性能影响吗?

4

3 回答 3

4

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

如果对象是不同的类型,===应该快一点,因为它可以false立即返回,而==将一个参数强制转换为另一种类型,然后执行比较。

于 2013-10-10T08:35:55.217 回答
1

在 jsperf 对此进行了测试:

看看并自己尝试一下:http: //jsperf.com/equalitydoubletriple/4

编辑:这个测试可能会更好,正如@dystroy 在下面的评论中提到的那样:http: //jsperf.com/equalitydoubletriple/5

于 2013-10-10T08:33:40.097 回答
1

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

于 2013-10-10T08:34:32.723 回答