小记录。
# ==是相等操作符,===是全等操作符;
# ==的判断标准为两个操作数相等则返回true,
===的判断标志是两个操作数未经转换就相等则返回true;
相等操作符的转换规则
· 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值,
false转换为0,而true转换为1;
· 一个操作数是字符串,另一个操作数是数值,则在比较相等性之前先将字符串为数值;
· 一个操作数是对象,另一个操作数不是,则调用对象的valueof()方法,用得到的基本类型值
按照前面的规则进行比较
这两个操作符在进行比较时则要遵循下列规则
* null和undefined是相等的
* 要比较相等性之前,不能将null和undefined转换成其他任何值
* 如果有一个操作数是NaN,则相等操作符返回false,
另外,即使两个操作数都是NaN,相等操作符也返回false,因为按照规则,NaN不等于NaN
* 如果两个操作数都是对象,则比较他们是不是同一个对象。如果两个操作数都指向同一个对象,
则相等操作符返回true
tips
不相等符为!=,不全等符为!==;
推荐使用全等符和不全等符。