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

JavaScript中严格相等运算符(===)的执行顺序问询

JavaScript严格相等运算符===的比较顺序解析

嘿,这个问题问到点子上了!其实===的比较逻辑是先检查数据类型,再对比值,顺序是完全固定的,咱们一步步拆解:

  • 第一步:优先检查左右操作数的数据类型是否完全一致。只要类型不一样(比如一边是number,另一边是string),直接返回false,根本不会进入值比较的环节。举个例子:5 === '5',刚一检查类型就发现一个是数字类型、一个是字符串类型,直接返回false,完全不会去对比两者的“内容”是否相似。
  • 第二步:只有当两边的类型完全相同时,才会继续比较它们的值。比如5 === 5,首先确认两边都是number类型,接着再对比值相等,最终返回true。这里要注意:哪怕值看起来完全一样,类型检查也是必须的前置步骤,不存在“先比再查类型”的情况。

再补两个直观的例子帮你理解:

  • true === 1:左边是boolean类型,右边是number类型,类型不同直接返回false,不会去纠结“true在隐式转换里等于1”这回事;
  • {name: 'Alice'} === {name: 'Alice'}:两边都是object类型,接下来对比值——但因为对象是引用类型,内存地址不同,所以返回false。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:39:56