JavaScript操作符之相等操作符

举报
青年码农 发表于 2022/08/24 23:58:29 2022/08/24
【摘要】 JavaScript总是让人感到意外,就像==和===,!=和!==,总是让人捉摸不透。今天就说说这四个操作符。 1 ==和=== 判断两个值是否相等,我们一般是a==b来判断,其他的编程语言也是一样,但是在JavaScript中,还有===这种操作。 1.1 == 两边值类型不同的时候,要先进行类型转换,再比较...

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

1 ==和===

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

1.1 ==

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


   
  1. console.log(1 == 1)            //true
  2. console.log("1" == 1)          //true
  3. console.log("a" == 1)          //false
  4. 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 ===

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


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

遵循如下规则:

  • 如果两个值类型不同,返回false

  • 如果两个值都是number类型,并且数值相同,返回true

  • 如果两个值都是stirng,并且两个值的String内容相同,返回true

  • 如果两个值都是true或者都是false,返回true

  • 如果两个值都是指向相同的Object,Arraya或者function,返回true

  • 如果两个值都是null或者都是undefined,返回true

2 !=和!==

2.1 !=

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


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

2.2 !==

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


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

文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/NMGWAP/article/details/125066803

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。