位置:首页 > 软件操作教程 > 编程开发 > JavaScript > 问题详情

JavaScript 相等和全等

提问人:刘团圆发布时间:2020-11-24

■知识点

等值检测运算符包括4个,详细说明如表所示。

比较运算符

==(相等)

比较两个操作数的值是否相等

!=(不相等)

比较两个操作数的值是否不相等

===(全等)

比较两个操作数的值是否相等,同时检测它们的类型是否相等

!==(不全等)

比较两个操作数的值是否不相等,同时检测它们的类型是否不相等

在相等运算中,应注意以下几个问题。

    如果操作数是布尔值,则先转换为数值,其中false转为0, true转换为1。

    如果一个操作数是字符串,另一个操作数是数字,则先尝试把字符串转换为数字。

    如果一个操作数是字符串,另一个操作数是对象,则先尝试把对象转换为字符串。

    如果一个操作数是数字,另一个操作数是对象,则先尝试把对象转换为数字。

    如果两个操作数都是对象,则比较引用地址。如果引用地址相同,则相等,否则不等。

在全等运算中,应注意以下几个问题。

    如果两个操作数都是简单的值,则只要值相等,类型相同,就全等。

    如果一个操作数是简单的值,另一个操作数是复合型对象,则不全等。

    如果两个操作数都是复合型对象,则比较引用地址是否相同。

■实例设计

下面是特殊操作数的比较。

console.log("1" == 1)                   //返回true。字符串被转换为数字

console.log(true == 1)                 //返回true。true被转换为1

console.log(false == 0)                //返回true。false被转换为0

console.log(null == 0)                 //返回false

console.log(undefined == 0)       //返回false

console.log(undefined == null)    //返回true

console.log(NaN == "NaN")         //返回false

console.log(NaN == 1)                 //返回false

console.log(NaN == NaN)            //返回false

console.log(NaN != NaN)             //返回true

提示:

NSN与任何值都不相等,包括它自己。mull和undefined值相等。在相等比轻中,null和undefined不允许被转换为其他类型的值。

下面是特殊操作数的全等比较。

console.log(null === undefined)      //返回false

console.log(0 === "0")                     //返回false

console.log(0 === false)                  //返回false)

下面是两个对象的比较,由于它们都引用了相同的地址,所以返回true。

var a = {};

var b = a;

console.log(a === b);                //返回true

下面两个对象虽然结构相同,但是地址不同,所以不全等。

var a = {};

var b = {};

console.log(a === b);                //返回false


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部