Js中“==”和“===”的区别
从字面上来讲,‘==’代表相等,‘===’代表严格相等。
具体来讲,比较过程如下:
比较过程:
‘==’:
1. 首先判断两个值的类型是否相同,如果相同,进行‘===’判断。
2. 如果两个值类型不同,进入以下情况:
若是null==undefined,则返回true
若是字符串和数值进行比较,则先把字符串转化成数值,然后进行比较
‘===’:
1.如果类型不同,返回false
2.如果是字符串,若对应位置字符相同,返回true
3.如果是数值,如果值相等,返回true。但如果有NaN存在,返回false
4.true===true,false===false
5.null===null, undefined===undefined
这里还有一种情况:
如果两个对象都是数组,无论是'=='还是'===',都会返回false