js中==和===区别

js中==和===区别
简单来讲: == 表明相同, ===表明严格相同, 为啥这么说呢,markdown

这么理解: 当进行双等号比较时候: 先检查两个操做数数据类型,若是相同, 则进行===比较, 若是不一样, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较, 而===比较时, 若是类型不一样,直接就是false.ide

操做数1 == 操做数2, 操做数1 === 操做数2函数

比较过程:post

  双等号==:对象

  (1)若是两个值类型相同,再进行三个等号(===)的比较blog

  (2)若是两个值类型不一样,也有可能相等,需根据如下规则进行类型转换在比较:字符串

    1)若是一个是null,一个是undefined,那么相等it

    2)若是一个是字符串,一个是数值,把字符串转换成数值以后再进行比较class

  

  三等号===:数据类型

  (1)若是类型不一样,就必定不相等

  (2)若是两个都是数值,而且是同一个值,那么相等;若是其中至少一个是NaN,那么不相等。(判断一个值是不是NaN,只能使用isNaN( ) 来判断)

  (3)若是两个都是字符串,每一个位置的字符都同样,那么相等,不然不相等。

  (4)若是两个值都是true,或是false,那么相等

  (5)若是两个值都引用同一个对象或是函数,那么相等,不然不相等

  (6)若是两个值都是null,或是undefined,那么相等

相关文章
相关标签/搜索