js值的比较
创始人
2025-06-01 16:56:01

值的比较

前言: 本篇文章主要介绍了 js 类型值的比较以及相等性检查,nullundefined 的特殊比较及比较运算符的特殊处理。

1. 比较结果为布尔型

所有比较运算符均返回布尔值(true 或者 false),比较的结果可以赋值给任意变量

let result = 2 > 1
alert(result) // true

2. 字符串比较

在进行字符串比较时,js 会根据"字典(dictionary)"或者"词典(lexicographical)"顺序进行比较。也就是说,字符串是逐字母进行比较的。

 'Z' > 'A'      // true'good' > 'god' // true'God' > 'Go'   // true

3.不同类型间的比较

对于不同类型值的比较,js 首先会将其转换为数字,然后再进行比较。对于布尔类型,true 转换为 1false 转换为 0.

'1' > 2      // false
5 > false    // true
'1' > false  // true
[] > false   // false,[] 转换为数字 0
[0] > false  // false,[0] 转换为数字 0
[2] > false  // true,[2] 转换为数字 2

4.(严格)相等

== 只比较值,若值相等,则返回true
=== 先比较类型,再比较值,弱类型或者值不相等,则返回false,否则返回true

// 1. 非严格相等
'1' == 1  // true
1 == true // true// 2. 严格相等
'1' === 1  // false
1 === true // false

5. nullundefined 的比较

null == undefined // truenull === undefined // false

当使用 > < >= <= 进行比较时,null 会被转换为 0, undefined 会被转换为 NaN

6. null vs 0 && undefined

null > 0 // false
null == 0 // false
null >= 0 // trueundefined > 0 // false
undefined < 0 // false
undefined >= 0 // false

相等性检查 == 和 普通比较运算符 > < >= <= 的代码逻辑是相互独立的。undefinednull 在相等性检查中不会转换为任何类型,它们有自己独立的比较规则。undefined 只与 null 相等。

7.总结

(1)比较运算符始终返回布尔值
(2)字符串的比较,会按照"词典"顺序逐字符进行比较。
(3)对不同类型值进行比较时,它们会先被转换为数字(不包括严格检查)再进行比较。
(4)在非严格相等下,undefined 只与 null 相等且各自不等于其他任何值。

相关内容

热门资讯

宁武县召开2025 年安委会第... 来源: 宁武县融媒体中心 12月8日,宁武县召开2025 年安委会第五次全体(扩大)会暨全...
【理财小讲堂】一文带你读懂理财... 之前为大家介绍过,理财产品的资金主要投向三类资产,分别为:债权类资产、权益类资产以及商品及金融衍生品...
昊海生科拟受让瑞济生物19.8... 北京商报讯(记者 丁宁)12月12日晚间,昊海生科(688366)发布公告称,公司拟以自有资金383...
原创 飞... 散瓶批发参考价跌至1485元/瓶,原箱产品报价1495元,较年初价格累计跌幅超30%,曾经一瓶难求的...
王源北京跨晚活动展现独特氛围 近日,王源在北京举办的跨晚活动引发了广泛关注,现场氛围热烈,吸引了众多粉丝的参与。活动于2025年举...