关于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中的相等全等操作符的主要内容,如果未能解决你的问题,请参考以下文章

相等(==)与全等(===)

JavaScript中相等==和严格相等===的区别

js中相等与不等

==与===

用JavaScript比较两个数组是否相等

JavaScript中对象的比较