isEqual()
function isEqual(a, b): boolean;
Defined in: object/isEqual.ts:28
深度比较两个值是否相等,支持多种数据类型和复杂结构 递归比较对象的属性和数组的元素,处理特殊类型如RegExp、Uint8Array和NaN 与===不同,此函数认为NaN等于NaN,并且会比较对象的原型和自有属性
Parameters
| Parameter | Type | Description |
|---|---|---|
a | any | 要比较的第一个值 |
b | any | 要比较的第二个值 |
Returns
boolean
如果两个值深度相等则返回true,否则返回false
Examples
isEqual(1, 1); // 返回 true
isEqual({ a: 1 }, { a: 1 }); // 返回 true(对象深度比较)
isEqual([1, 2, 3], [1, 2, 3]); // 返回 true(数组比较)
isEqual(NaN, NaN); // 返回 true(特殊处理NaN)
isEqual(/abc/i, /abc/i); // 返回 true(正则表达式比较)
isEqual(new Uint8Array([1,2]), new Uint8Array([1,2])); // 返回 true(Uint8Array比较)
**Note:** 比较对象时会检查构造函数和自有属性,不考虑原型链上的属性
**Note:** 循环引用对象可能导致无限递归
**Note:** 函数不支持比较函数、Promise等引用类型的内部状态