javascript的基础知识啦,大家经常用到 == ,!= ,=== ,!== 四个操作符,就是不知道其中的区别,现在说一下啦。
首先说说 == 和 != 这两个操作符,这两个操作符都会先转换(强制转换),再比较它们的相等性。
再说说 === 和 !== 操作符,这两个操作数是不转换就直接比较他们的相等性。来个例子吧,这样说的太抽象了。
var result1 = ("55" == 55 ); //true ,这个例子中会将字符串55转换为数字55,两边的类型相同,值也相同。
var result2 = ("55" === 55); //false,因为不同的数据类型不相等
不相等( != )和不全等操作符( !== )原理是是一样的,就不举例解释了。
现在在说一下相等和不相等操作符转换时遵循的基本原则:
1) 如果有一个操作数是布尔值,再比较之前先将其转换为数值-------------false转为0,true转为1.
2)如果有一个操作数是字符串,另一个操作数是数值,比较之前将字符串转为数值。
3)如果有一个操作数是对象,另一个不是,调用对象的valueOf()方法,用得到的基本类型值再按照上面规则进行比较。
比较时应该遵循的规则:
1)null和undefined是相等的。
2)如果有一个操作数是NaN,相等操作符返回false,不相等操作符返回true。
如果两个操作符是NAN,相等操作符返回false,NaN不等于NaN。
3)如果两个操作数都是对象,则比较他们是不是指向同一个对象。