JavaScript比较运算

本文探讨了JavaScript中的比较运算,重点关注等值检测和序列检测。在等值检测中,介绍了相等运算符(==)和全等运算符(===)的不同规则,通过示例展示了它们在比较字符串对象时的行为。在序列检测方面,文章也有所提及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

等值检测

等值检测的目的在于判断两个变量是否相同或相等。我们说相同与不相同,是指运算符“===”和“!==”的运算效果;说相等与不相等,是指运算符“==”和“!=”的运算效果。
我们可以用个表格来表示:
比较运算中的等值检测
名称运算符说明
相等==比较两个表达式,看是否相等
不等!=比较两个表达式,看是否不相等
严格相等===比较两个表达式,看值是否相等并具有相同的数据类型
不严格相等!==比较两个表达式,看是否具有不相等的值或数据类型不同

等值检测中相等运算规则

等值检测中的相等运算规则
类型运算规则
两个值类型进行比较转换成相同数据类型的值进行数据等值比较
值类型与引用类型比较将引用类型的数据转换为值类型,再进行数据等值比较
两个引用类型比较比较引用的地址
对值类型和引用类型概念模糊的可以去看之前的JavaScript变量一文。

等值检测中相同运算规则

等值检测中相同运算规则
类型运算规则
两个值类型进行比较数据类型不同,则必然不相同
数据类型相同时,进行数值等值比较
值类型与引用类型比较必然不相同
两个引用类型比较比较引用的地址
我们可以看到,两个引用类型比较,相同和相等并没有什么区别。我们看个例子:
[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var str1 = new String("str");  
  2. var str2 = new String("str");  
  3.   
  4. console.log(str1 == str2); // false  
  5. console.log(str1 === str2); // false  

序列检测

序列检测这个概念咋一听很拗口,换个说法其实就是比较大小。比较的运算符有四个:>、>=、<、<=,意义不用说大家都明白。
可以进行序列检测的数据类型有三种,boolean、string和number。它们的序列值如下表所示:
可比较序列的类型序列值
boolean0~1
string0~255(*注1)
numberNEGATIVE_INFINITY~POSITIVE_INFINITY(*注2)
*注1:在一般语言中,字符(char)这种数据类型是按ASCII码排序的。JavaScript中不存在字符类型,但字符串中的每一个字符,都将作为单一字符参与序列检测。
*注2:表示负无穷到正无穷,实际上是有界限的,只不过这个界限达到了10^308级别(可以通过Number.MAX_VALUE查看),我们一般认为达不到。值NaN没有序列值,任何值(包括NaN本身)与NaN进行序列检测都将得到false
序列检测的运算规则如下表:
序列检测的运算规则
类型运算规则
两个值类型进行比较直接比较数据在序列中的大小
值类型与引用类型比较将引用类型的数据转换为值类型数据,再比较数据在序列中的大小
两个引用类型比较无意义,总是返回false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值