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

JavaScript中表达式window === self === this的输出结果为什么为false?

问题原因说明

核心原因是 JavaScript 的全等运算符===遵循左结合的运算规则,不会同时比对三个值的相等性,会按从左到右的顺序分步运算:

  • 首先执行左侧的window === this判断:在浏览器全局作用域下运行代码时,全局上下文的this默认指向window对象,因此这一步返回布尔值true
  • 第一步的运算结果会代入后续判断,实际执行的第二步运算为true === self:浏览器环境下self是window的别名,属于对象类型,布尔值和对象类型的值不可能全等,因此最终返回结果为false

如果要实现三个值两两相等的判断,正确写法是用逻辑与运算符连接两个全等判断:

// 正确写法,返回true
console.log(window === this && this === self)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:15:08