javascript中“==”,“===”和“Object.is(a,b)”的区别

作为两个量比较的三种方式“==”,“===”和“Object.is(a,b)”有一定区别,如下(具体见MDN):

(1)Object.is(a,b)

  Object.is(a,b) 是ECMA标准中的 SameValue的实现,比较运算不会进行强制的类型转换(如==),

  返回true的情况如下(其他情况返回false,即不等):

  

 (2)==

  比较前,会进行两个数值的强制类型转换(字符串和数值类型),转换为相同类型然后比较;

  比较不会区分 +0 和 -0,且认为两个NaN不相等。

  

(3)===

  该比较不会区分 +0 和 -0,且认为两个NaN不相等。

  

 注:== 和 ===的区别主要是是否会在转换前进行强制类型转换。

posted on 2019-01-16 16:26  zhcgis  阅读(373)  评论(0编辑  收藏  举报

导航