---
name: "up.util.isEqual"
area: "API"
kind: "JavaScript function"
parent: "up.util module"
url: "https://unpoly.com/api/up.util.isEqual"
---
<nav aria-label="Unpoly docs">[All docs](https://unpoly.com/index.md) · [up.util module](https://unpoly.com/api/up.util.md)</nav>

# up.util.isEqual(a, b)

Returns whether the two arguments are equal by value.

<nav aria-label="Contents">

#### Contents

- [Comparison protocol](#comparison-protocol)
- [Parameters](#parameters)
- [Return value](#return-value)

</nav>

## Comparison protocol {#comparison-protocol}

- By default `up.util.isEqual()` can compare strings, numbers, [array-like values](https://unpoly.com/api/List.md), plain objects and `Date` objects.
- To make the comparison protocol work with user-defined classes, see [`up.util.isEqual.key`](https://unpoly.com/api/up.util.isEqual.key.md).
- Objects without a defined comparison protocol are compared by reference (`===`).

---

## Parameters {#parameters}

### a {#a}

(required)

The first value to compare.

Type: any

### b {#b}

(required)

The second value to compare.

Type: any

---

## Return value {#return-value}

Whether the arguments are considered equal.

Type: boolean

