js中==和===的区别
==:等于,会发生数据隐形类型转换 ===:全等于,包括数据类型和值要全等
这里要先了解js的数据类型有:字符串,数值,数组,对象,null,undefined,布尔
隐形类型转换步骤:
一、判断有没有NaN,若有,一律返回false。
二、判断有没有布尔,若有,则布尔 转 数值。(false是0,true是1)
三、判断有没有字符串, 有三种情况:
1、对方是对象,对象使用toString()或者valueOf()进行转换;
2、对方是数字,数字转字符串;
3、对方是字符串,直接比较;
4、其他返回false
四、如果是数字,对方是对象,对象取valueOf()或者toString()进行比较, 其他一律返回false
五、null, undefined不会进行类型转换, 但它们俩是相等==的 (相关链接,解释null和 undefine dhttp://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html)
即是null==undefined 结果为true