Movatterモバイル変換


[0]ホーム

URL:


  1. 面向开发者的 Web 技术
  2. JavaScript
  3. JavaScript 参考
  4. JavaScript 标准内置对象
  5. Object
  6. Object.is()

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

View in EnglishAlways switch to English

Object.is()

Baseline Widely available

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

Object.is() 静态方法确定两个值是否为相同值

尝试一下

console.log(Object.is("1", 1));// Expected output: falseconsole.log(Object.is(NaN, NaN));// Expected output: trueconsole.log(Object.is(-0, 0));// Expected output: falseconst obj = {};console.log(Object.is(obj, {}));// Expected output: false

语法

js
Object.is(value1, value2)

参数

value1

要比较的第一个值。

value2

要比较的第二个值。

返回值

一个布尔值,指示两个参数是否为相同的值。

描述

Object.is() 确定两个值是否为相同值。如果以下其中一项成立,则两个值相同:

  • 都是undefined
  • 都是null
  • 都是true 或者都是false
  • 都是长度相同、字符相同、顺序相同的字符串
  • 都是相同的对象(意味着两个值都引用了内存中的同一对象)
  • 都是BigInt 且具有相同的数值
  • 都是symbol 且引用相同的 symbol 值
  • 都是数字且
    • 都是+0
    • 都是-0
    • 都是NaN
    • 都有相同的值,非零且都不是NaN

Object.is()== 运算符并不等价。== 运算符在测试相等性之前,会对两个操作数进行类型转换(如果它们不是相同的类型),这可能会导致一些非预期的行为,例如"" == false 的结果是true,但是Object.is() 不会对其操作数进行类型转换。

Object.is()等价于=== 运算符。Object.is()=== 之间的唯一区别在于它们处理带符号的 0 和NaN 值的时候。=== 运算符(和== 运算符)将数值-0+0 视为相等,但是会将NaN 视为彼此不相等。

示例

使用 Object.is()

js
// 案例 1:评估结果和使用 === 相同Object.is(25, 25); // trueObject.is("foo", "foo"); // trueObject.is("foo", "bar"); // falseObject.is(null, null); // trueObject.is(undefined, undefined); // trueObject.is(window, window); // trueObject.is([], []); // falseconst foo = { a: 1 };const bar = { a: 1 };const sameFoo = foo;Object.is(foo, foo); // trueObject.is(foo, bar); // falseObject.is(foo, sameFoo); // true// 案例 2: 带符号的 0Object.is(0, -0); // falseObject.is(+0, -0); // falseObject.is(-0, -0); // true// 案例 3: NaNObject.is(NaN, 0 / 0); // trueObject.is(NaN, Number.NaN); // true

规范

Specification
ECMAScript® 2026 Language Specification
# sec-object.is

浏览器兼容性

参见

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp