Movatterモバイル変換


[0]ホーム

URL:


  1. 面向开发者的 Web 技术
  2. JavaScript
  3. JavaScript 参考
  4. 表达式和运算符
  5. 严格相等(===)

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in EnglishAlways switch to English

严格相等(===)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

严格相等运算符(===)会检查它的两个操作数是否相等,并且返回一个布尔值结果。与相等运算符不同,严格相等运算符总是认为不同类型的操作数是不同的。

尝试一下

console.log(1 === 1);// Expected output: trueconsole.log("hello" === "hello");// Expected output: trueconsole.log("1" === 1);// Expected output: falseconsole.log(0 === false);// Expected output: false

语法

js
x === y

描述

严格相等运算符(===!==)提供了严格相等判定语义。

  • 如果操作数的类型不同,则返回false
  • 如果两个操作数都是对象,只有当它们指向同一个对象时才返回true
  • 如果两个操作数都为null,或者两个操作数都为undefined,返回true
  • 如果两个操作数有任意一个为NaN,返回false
  • 否则,比较两个操作数的值:
    • 数字类型必须拥有相同的数值。+0-0 会被认为是相同的值。
    • 字符串类型必须拥有相同顺序的相同字符。
    • 布尔运算符必须同时为true 或同时为false

严格相等运算符与相等==)运算符最显著的区别是,如果操作数的类型不同,== 运算符会在比较之前尝试将它们转换为相同的类型。

示例

比较相同类型的操作数

js
"hello" === "hello"; // true"hello" === "hola"; // false3 === 3; // true3 === 4; // falsetrue === true; // truetrue === false; // falsenull === null; // true

比较不同类型的操作数

js
"3" === 3; // falsetrue === 1; // falsenull === undefined; // false

比较对象

js
const object1 = {  key: "value",};const object2 = {  key: "value",};console.log(object1 === object2); // falseconsole.log(object1 === object1); // true

规范

Specification
ECMAScript® 2026 Language Specification
# sec-equality-operators

浏览器兼容性

参见

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp