一、关系运算符

比较运算符

大于(>)、小于(<)、大于等于(>=)、小于等于(<=)这几个关系运算符用于对两个值进行比较。这几个运算符都返回一个boolean值,如下例所示:

var result = 5>3;        //true
var result2 = 5<3;      //false

与在JavaScript中的其他运算符一样,当关系运算符的操作数是非数值时,也要进行数据转换或完成某些神奇操作。看下列规则:

  • 如果两个数都是数值,则进行数值比较
  • 如果两个操作数都是字符串,则比较两个字符串对应的Unicode字符编码值
  • 如果一个操作数是数值,则将另一个操作数转换为数值,然后进行数值比较
  • 如果一个操作数是对象,则调用这个对象的valueOf方法/toString()方法,用得到的结果按照前面的规则进行比较
  • 如果一份操作数是布尔值,,则先将其转换为数值,然后再进行数值比较
    举几个例子:
var result2 = "29" < "3";        //比较的是字符编码,2的字符编码是“50,而3的字符编码是是“51”
console.log(result2);           //true
var result2 = "29" < "3";           //比较的是字符编码,2的字符编码是“50,而3的字符编码是是“51”
console.log(result2);               //true
var result3 = "a" < 3;                //因为"a"无法被转换为数值,所以被转换为NaN
console.log(result3);               //false
var result4 = NaN < 3;
console.log(result4)                //false
var result5 = NaN >= 3;
console.log(result5);               //false

相等运算符

在JavaScript中有两组相等运算符:相等不相等全等不全等
1.相等和不相等
JavaScript中的相等运算符有两个等于号(==)表示,如果两个操作数相等,就返回true,否则,但会false。
JavaScript中的不相等运算符用叹号后面加一个等于号(!=)表示,如果两个操作数不想等,就返回true,否则,返回false。
这两种类型都会先转换操作数(通常为强制转型),然后再比较它们的相等性。
在转换不同数据类型时,相等和不相等运算符遵循以下规则:

  • 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,true转换为1;
  • 如果有一个操作数是字符串,另一个操作数是数值,在比较之前先将字符串转换为数值,再进行比较
  • 如果有一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值进行比较
  • null和undefined是相等的
  • 如果有一个操作数是NaN,则相等运算符返回false,而不相等运算符返回true。即使两个操作数都是NaN,相等运算符返回false,按照规则,NaN不等于NaN
  • 如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则返回true,否则,返回false

2.全等和不全等
全等运算符使用三个等于号(===)表示。
不全等运算符使用一个叹号加两个等于号(!==)表示。
举几个例子:

var result = ("55" == 55);
var result2 = ("55" === 55);
console.log(result);            //true
console.log(result2);           //false
var result3 = ("55" != 55);
var result4 = ("55" !== 55);
console.log(result3);           //false
console.log(result4);           //true

全等、不全等和相等、不相等的区别:
全等、不全等比较内容还比较数据类型。
相等不相等只比较内容,不比较数据类型。

二、逻辑运算符

逻辑运算符分为逻辑与(&&)、逻辑或(||)、逻辑非(!),三种运算符的返回值都是布尔值。
1. 逻辑与(&&)
逻辑与(&&)真值表

第一个操作数 第二个操作数 结果
true true true
true false false
false true false
false false false

逻辑与运算可以应用于任何类型的操作数,而不仅仅是布尔值。在有一个操作数不是布尔值的情况下,逻辑与遵循以下规则:

  • 如果第一个操作数是对象,则返回第二个操作数。
  • 如果第二个操作数是对象,则只有第一个操作数的求值结果为true的情况下才会返回该对象。
  • 如果两个操作数都是对象,则返回第二个操作数。
  • 如果第一个操作数是null,则返回null。
  • 如果第一个操作数是undefined,则返回undefined。
  • 如果第一个操作数是NaN,则返回NaN。

逻辑与是短路操作,即如果第一个数能够决定结果,那么就不再对第二个数进行求值。对于逻辑与而言,如果第一个操作数是false,则无论第二个数是什么值,结果都不可能是true。
2. 逻辑或(||)
逻辑或(||)真值表:

第一个操作数 第二个操作数 结果
true true true
true false true
false true true
false false false

与逻辑与很类似,逻辑或遵循以下规则:

  • 如果第一个操作数是对象,则返回第一个操作数。
  • 如果第一个数的求值结果为false,则返回第二个操作数
  • 如果两个操作数都是对象,则返回第一个操作数
  • 如果两个操作数都是null,则返回null
  • 如果两个操作数都是undefined,则返回undefined
  • 如果两个操作数都输NaN,则返回NaN

与逻辑或也是短路运算符。也就是说,如果第一个操作数的求值结果为true,就不会对第二个操作数进行求值了。

3. 逻辑非(!)
无论这个值是什么数据类型,这个运算符都会返回一个布尔值,逻辑非运算符首先会将它的操作数转换为一个布尔值,然后对其进行求反。
举几个例子:

console.log(!false);         //true
console.log(!"blue");         //false
console.log(!0);                //true
console.log(!NaN);              //true
console.log(!'');             //true
console.log(!1234);             //false

JavaScript中的关系运算符和逻辑运算符相关推荐

  1. javascript关系运算符与逻辑运算符

    原文来自javascript关系运算符与逻辑运算符 一.关系运算符 用于进行比较的运算符称作为关系运算符:小于(<).大于(>).小于等于(<=).大于等于(>=).相等(== ...

  2. HTML学习9 JS 数字和字符串 变量的类型 运算符和表达式 布尔值和关系运算符、逻辑运算符

    JavaScript简介 1.1 JavaScript的用途 JavaScript用来制作web页面交互效果,提升用户体验. 简单列出几个JavaScript能够制作的页面效果,它能干什么: 轮播图 ...

  3. 关系运算符与逻辑运算符

    关系运算符与逻辑运算符 关系运算符,通俗的讲就是比较,俗话说没有比较就没有伤害.现实中每天我们都在进行比较,购物的时候,选对象的时候等等,JAVA中提供了六种比较方式. 1.== :常用来比较值是否相 ...

  4. 【Cprimerplus_03】算术运算符、关系运算符、逻辑运算符

    算术运算符.关系运算符.逻辑运算符 文章里面的所有截图和"之前所学过的内容"都是来自于翁恺的C语言视频. 之前已经学习过简单的算术运算符.关系运算符(又称比较运算符).逻辑运算符. ...

  5. JavaScript中的instanceof运算符是什么?

    本文翻译自:What is the instanceof operator in JavaScript? The instanceof keyword in JavaScript can be qui ...

  6. C#算数运算符、关系运算符、逻辑运算符、语句

    C#算数运算符.关系运算符.逻辑运算符.语句 一.运算符: (一).算术运算符:+ - * /% % --取余运算取余运算的应用场景: 1.奇偶数的区分. 2.把数变化到某个范围之内.--彩票生成. ...

  7. 【JavaSE】算术运算符、关系运算符、逻辑运算符、赋值运算符与三元运算符

    本专栏为 JavaSE 的学习笔记及相关项目,专栏长期免费更新 ❤️ ❤️ ❤️ ⭐️往期回顾: [JavaSE]String类与基本数据类型转换 [JavaSE]Java数据类型.变量基本使用.编码 ...

  8. JavaScript基础实战(2)js中的强制类型转换、运算符、关系运算符、逻辑运算符、条件运算符

    文章目录 1.强制类型转换Number 1.1 代码 1.2 测试结果 2.进制表示 2.1 代码 2.2 测试结果 3.强制类型转换为Boolea 3.1 代码 3.2 测试结果 4.运算符 4.1 ...

  9. python关系运算符中表示不等于的关系运算符_Python学习之------运算符表达式(关系运算符,逻辑运算符,三元表达式,成员关系)...

    @详细看Python学习手册第121页. 1,算术运算符(加减乘除) 2,关系运算符(又叫比较运算符 > < == != >= <=) xy,x>=y    大小比较,返 ...

  10. Go 学习笔记(5)— 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、取地址和指针运算符

    1. Go 运算符分类 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 1.1 算术运算符 下表列出了所有Go语言的算术运算符.假定 A 值为 10, ...

最新文章

  1. 简单的横向ListView实现(version 3.0)
  2. 思科光传输功率查询_各品牌网络设备的光功率查看方法(不完全统计)
  3. left join 和 left outer join 的区别【转】
  4. matlab smulink笔记03——过零检测
  5. python与matlab混合编程_python 与 matlab 混编
  6. 自定义select样式
  7. C 语言实例 - 判断闰年
  8. MFC的非模态对话框资源管理
  9. Pytorch 一种调整学习率的思路
  10. Java编程:马踏棋盘算法(骑士周游问题)
  11. 微信小程序添加使用外部字体
  12. OOA、OOD、OOP 区别与思想
  13. 使用ID3算法实现决策树
  14. 【疑难杂症】三步解决虚拟机启动失败,提示无法获取VMCI驱动程序的版本的问题
  15. RAKsmart高防服务器怎么样
  16. 理财就是理生活 —— 小白理财训练营(上)
  17. 最大流为什么会等于最小割
  18. 【DXP】更换原理图模板的方法
  19. Django中使用富文本编辑器Uedit
  20. 安卓手机系统开发教程!BTAJ面试有关散列(哈希)表的面试题详解,大厂直通车!

热门文章

  1. 什么是多道程序设计技术,试述多道程序运行的特征。
  2. 计算机解决最小二乘法的过程,线性最小二乘法在计算机化学中的应用.doc
  3. 《Redis视频教程》(p1)
  4. 一加3t刷机后还卡_一加3t刷机工具大全+3个ROM
  5. 黑马python培训费用
  6. html设置自己下载的字体
  7. 如何查找CAD打印样式文件存储位置?
  8. PFC编程基础(学习实战)
  9. 2021年全国省市县行政区划道路水系shp矢量数据(路网:国道省道县道乡道城市一级二级三级四级高速铁路 水系:全国水系一级二级四级五级河流 行政边界:省市县行政区划界线)
  10. ug齿条插件_NX9.0齿轮齿条运动仿真—齿轮工具箱巧用及渐开线制作