# Strict equality (===)

## 在此页

The strict equality operator ( ``` === ``` ) checks whether its two operands are equal, returning a Boolean result. Unlike the equality operator, the strict equality operator always considers operands of different types to be different.

## 句法

```x === y
```

## 描述

The strict equality operators ( ``` === ``` and ``` !== ``` ) use the Strict Equality Comparison Algorithm to compare two operands.

• If the operands are of different types, return ``` false ``` .
• If both operands are objects, return ``` true ``` only if they refer to the same object.
• If both operands are ``` null ``` or both operands are ``` undefined ``` , return ``` true ``` .
• If either operand is ``` NaN ``` , return ``` false ``` .
• Otherwise, compare the two operand's values:
• Numbers must have the same numeric values. ``` +0 ``` and ``` -0 ``` are considered to be the same value.
• Strings must have the same characters in the same order.
• Booleans must be both ``` true ``` or both ``` false ``` .

The most notable difference between this operator and the equality ( ``` == ``` ) operator is that if the operands are of different types, the ``` == ``` operator attempts to convert them to the same type before comparing.

## 范例

### Comparing operands of the same type

```console.log("hello" === "hello");   // true
console.log("hello" === "hola");    // false
console.log(3 === 3);               // true
console.log(3 === 4);               // false
console.log(true === true);         // true
console.log(true === false);        // false
console.log(null === null);         // true
```

### Comparing operands of different types

```console.log("3" === 3);           // false
console.log(true === 1);          // false
console.log(null === undefined);  // false
```

### Comparing objects

```const object1 = {
name: "hello"
}
const object2 = {
name: "hello"
}
console.log(object1 === object2);  // false
console.log(object1 === object1);  // true
```

## 浏览器兼容性

 Desktop Mobile Server Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Chrome 1 Edge 12 Firefox 1 IE 4 Opera 4 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs 0.1.100

## 另请参阅

1. JavaScript
2. 教程：
3. 完整初学者
4. JavaScript 指南
5. 中间体
6. 高级
7. 参考：
8. 内置对象
9. 表达式 & 运算符
10. 语句 & 声明
11. 函数
12. 错误
13. 杂项