JavaScript操作符之相等操作符

简介: JavaScript操作符之相等操作符

JavaScript总是让人感到意外,就像==和===,!=和!==,总是让人捉摸不透。今天就说说这四个操作符。

1 ==和===

判断两个值是否相等,我们一般是a==b来判断,其他的编程语言也是一样,但是在JavaScript中,还有===这种操作。

1.1 ==

两边值类型不同的时候,要先进行类型转换,再比较。

console.log(1 == 1)            //true
console.log("1" == 1)          //true
console.log("a" == 1)          //false
console.log(undefined == null) //true

复制

遵循如下规则:

  • 如果两个值具有相同类型,会进行===比较,返回===的比较值
  • 如果两个值不具有相同类型,也有可能返回true
  • 如果一个值是null另一个值是undefined,返回true
  • 如果一个值是string另个是number,会把string转换成number再进行比较
  • 如果一个值是true,会把它转成1再比较,false会转成0
  • 如果一个值是Object,另一个是number或者string,会把Object利用 valueOf()或者toString()转换成原始类型再进行比较

1.2 ===

恒等,不做类型转换,类型不同的一定不等

console.log(1 === 1)            //true
console.log("1" === 1)          //false
console.log("a" === 1)          //false
console.log(undefined === null) //false

复制

遵循如下规则:

  • 如果两个值类型不同,返回false
  • 如果两个值都是number类型,并且数值相同,返回true
  • 如果两个值都是stirng,并且两个值的String内容相同,返回true
  • 如果两个值都是true或者都是false,返回true
  • 如果两个值都是指向相同的Object,Arraya或者function,返回true
  • 如果两个值都是null或者都是undefined,返回true

2 !=和!==

2.1 !=

和==类似,会存在隐式类型转换

console.log(1 != 1)            //false
console.log("1" != 1)          //false
console.log("a" != 1)          //true
console.log(undefined != null) //false

复制

2.2 !==

和===类似,不会存在类型转换,类型不同,一定!==,一定是true

console.log(1 !== 1)            //false
console.log("1" !== 1)          //true
console.log("a" !== 1)          //true
console.log(undefined !== null) //true
相关文章
|
7月前
|
JavaScript 前端开发 算法
JavaScript 中算术操作符:全面解读、实战应用与最佳实践
【4月更文挑战第5天】本文探讨JavaScript中的算术操作符,包括加、减、乘、除、求余、自增、自减及复合赋值等,强调理解与熟练运用它们对提升编程效率和代码准确性的重要性。文中通过示例介绍了各种操作符的用法,同时提醒注意数据类型转换、浮点数精度、除以零错误以及利用短路求值优化逻辑等问题。通过学习,读者能更好地掌握算术操作符在不同场景的应用,提升编程技能。
89 1
|
7月前
|
JavaScript 前端开发 安全
javascript中的可选链操作符
javascript中的可选链操作符
|
4月前
|
JavaScript 前端开发 开发者
深入解析JavaScript中的比较操作符
【8月更文挑战第20天】
32 0
|
7月前
|
JavaScript 前端开发
探索JavaScript中的New操作符:原理与使用
探索JavaScript中的New操作符:原理与使用
|
7月前
egg.js 24.12sequelize模型-where操作符
egg.js 24.12sequelize模型-where操作符
65 1
egg.js 24.12sequelize模型-where操作符
|
JavaScript
JS new操作符的具体干了什么?
JS new操作符的具体干了什么?
60 1
|
JavaScript 前端开发 索引
JavaScript Day02 操作符及类型转换与流程控制语句 3
JavaScript Day02 操作符及类型转换与流程控制语句 3
76 0
|
Web App开发 JavaScript 前端开发
JavaScript Day02 操作符及类型转换与流程控制语句 1
JavaScript Day02 操作符及类型转换与流程控制语句 1
80 0
|
存储 JavaScript 前端开发
javascript基本语法学习(变量、数据类型、操作符、条件语句、循环)
javascript基本语法学习(变量、数据类型、操作符、条件语句、循环)
|
JavaScript
【new操作符做了什么 —— js】
【new操作符做了什么 —— js】