---
title: "isDeepEqual"
description: "纯数据结构化深比较，结构与值均相同即视为相等"
canonical_url: "https://core.mhaibaraai.cn/docs/helpers/object/is-deep-equal"
---
# isDeepEqual

> 纯数据结构化深比较，结构与值均相同即视为相等

## 用法

`isDeepEqual` 递归比较原始值、数组与对象的自有可枚举键，适合判定 options 等纯数据是否真正变化。

```ts
import { isDeepEqual } from '@movk/core'

isDeepEqual({ a: [1, 2] }, { a: [1, 2] }) // true
isDeepEqual({ a: { b: 1 } }, { a: { b: 2 } }) // false
isDeepEqual({ a: 1 }, { a: 1, b: undefined }) // false
isDeepEqual(Number.NaN, Number.NaN) // true
```

> [!NOTE]
> 
> 与 
> 
> equalsBy
> 
>  的区别：
> 
> equalsBy
> 
>  判断两个值是否指向“同一项”（按 id 等键），
> 
> isDeepEqual
> 
>  判断两份数据的内容是否完全一致。

> [!WARNING]
> 
> 不处理 
> 
> Map
> 
> 、
> 
> Set
> 
> 、
> 
> Date
> 
> 、类实例等内建类型的内部状态，也不处理循环引用，仅用于纯数据。

## API

### `isDeepEqual(a, b)`

纯数据结构化深比较。

### 参数

**a** (`unknown`) *required*: 待比较值。

**b** (`unknown`) *required*: 待比较值。

### 返回值

**返回值** (`boolean`): 结构与值均相同时返回 true。

## Changelog

See commit history for [src/helpers/object/isDeepEqual.ts](https://github.com/mhaibaraai/movk-core/commits/main/src/helpers/object/isDeepEqual.ts).

---

- [GitHub](https://github.com/mhaibaraai/movk-core/blob/main/src/helpers/object/isDeepEqual.ts)


## Sitemap

See the full [sitemap](https://core.mhaibaraai.cn/sitemap.md) for all pages.
