You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询JavaScript中多个引用类型比较结果为false的原因

关于JavaScript引用类型比较结果的解释

核心规则:在JavaScript中,对象、数组、函数这类引用类型,用==或===比较时,判断的是两个值是否指向内存中的同一个地址,而非内容是否相同。

逐个分析代码案例

1. foo === foo // true

foo是指向某一函数对象的变量,比较时是同一个内存地址的引用,因此结果为true。

2. function(){} === function(){} // false

左右两边是两个独立创建的匿名函数,它们在内存中占据不同的地址,即便代码内容完全一致,地址不匹配就会返回false。

3. ['a'] == ['a'] // false

两个['a']是各自全新创建的数组对象,对应内存中的不同地址。==对引用类型依然比较地址,所以即便内容相同,结果也是false。如果需要比较数组内容是否一致,得手动遍历元素逐一校验,或者用JSON.stringify(['a']) === JSON.stringify(['a'])(注意这种方法无法处理函数、undefined等特殊值)。


内容的提问来源于stack exchange,提问作者Lee Lennon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 18:30:44