关于JavaScript中的相等全等操作符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JavaScript中的相等全等操作符相关的知识,希望对你有一定的参考价值。
1.相等操作符==,不相等操作符!=,会先转换操作数(通常称为强制转换类型),然后再比较它们的相等性;
转换规则:根据不同的数据类型,有不同的转换;
A.如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值。false转换,true转换为1.
B.如果一个操作符是字符串,另一个操作数是数值,在比较相等性之前将字符串转换为数值;不能转换成数值的话,就flase;1=="a";//false; ---------1=="1";//true;-------true=="1";//true;---false=="1";//false;--true=="2";//false;
C.如果一个操作符是对象,另一个操作符不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则比较;(null.valueOf();会报错,null没有属性!------)
这两个操作符在进行比较时遵循下列特殊规则:
(a)、null和undefined是相等的。
(b)、要比较相等性之前,不能将null和undefined转换成其他任何值。
(c)、如果有一个操作数是NaN,则相等操作符返回false;不相等返回true.即使两个操作数都是NaN!
(d)、如果两个操作数都是对象,则比较它们是不是同一个对象,如果都是指向同一个对象,OK相等就是true!否则返回false;
2.全等操作符===,不全等!==。在比较之前不转换操作数! 注意null ===undefined返回false,因为它们是不同的类型. object 与 undefined;
以上是关于关于JavaScript中的相等全等操作符的主要内容,如果未能解决你的问题,请参考以下文章