您的位置:首页> 前端教程> JS教程
文章导航

JavaScript == 等号运算符

2018-10-20 16:18| 作者: admin| 查看: 1009| 评论: 0|来自: 蚂蚁部落

等号运算符可以比较左右两个运算数是否相等。

如果相等则返回true,否则返回false。

初学者可能认为此运算符极其简单,这可能太过于轻视此运算符。

下面将通过代码实例对它的用法做一下详细介绍。

代码实例如下:

[JavaScript] 纯文本查看 复制代码运行代码
let a=1,b=2;
console.log(a==b);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/161927jz81smqszee7ddde.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

数字之间的比较直观,相等则返回true,否则返回false。

[JavaScript] 纯文本查看 复制代码运行代码
console.log(true==1);
console.log(false==0);
console.log(true==2);
console.log(false==-2);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/161955tymw2jga7yg6b2gb.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果运算数中有一个是布尔值,一个是数字。

那么首先将布尔值转换为数字,true转换为1,false转换为0。

[JavaScript] 纯文本查看 复制代码运行代码
console.log("8"==8);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/162021vwj67vxsw6krwyv7.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果两个操作数一个是数字一个是字符串。

那么首先尝试将字符串转换为数字,然后进行比较。

[JavaScript] 纯文本查看 复制代码运行代码
let obj={
  toString:function(){
      return "蚂蚁部落"
  }
}
console.log(obj=="蚂蚁部落");

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/162047v7hjdwajns6dn4ds.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果操作数中一个是对象,一个是字符串。

那么首先尝试将对象转换为字符串,再进行比较。

[JavaScript] 纯文本查看 复制代码运行代码
let obj={
    valueOf:function(){
        return 5;
    }
}
console.log(obj==5);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/162115d0ujsgxuzssg28g5.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果操作数中一个是对象,一个是数字。

那么首先尝试将对象转换为数字,然后再去比较。

[JavaScript] 纯文本查看 复制代码运行代码
console.log(null==undefined);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/162140xg829yqljuq18u83.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

null和undefined是两个特殊的值,但是用等号比较两者,返回值为true。

关于null与undefined的基本用法可以参阅JavaScript undefined与null区别一章节。

[JavaScript] 纯文本查看 复制代码运行代码
console.log(NaN=="A");
console.log(NaN==NaN);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/162232blkrql17qaurqs1z.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

NaN与任何操作数比较返回值都是false,包括与自己比较。

[JavaScript] 纯文本查看 复制代码运行代码
console.log([5]==[5]);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/162255e7lrk9uluk9j7zp9.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

返回值竟然是false,说明两者不相等。

虽然看起来两个数组是一模一样,简直就是毫无瑕疵的双胞胎。

再像的双胞胎也是两个独立的个体,上面是两个不同的数组对象。

如果操作数是对象(引用类型数据),比较是两个对象的地址。

关于引用类型数据可以参阅JavaScript值类型和引用类型一章节。

总结如下:

等号运算符比较包容一些,操作数可以进行数据类型转换。

这一点与全等运算符(===)不同,具体参阅JavaScript ===运算符一章节。

关于数据类型转换可以参阅JavaScript 数据类型转换一章节。

2

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (2 人)

最新评论

返回顶部