严格不等式 (!==)

严格不等 (!==) 运算符检查两个操作数是否不相等,并返回布尔结果。与 inequality 运算符不同,严格不等运算符始终认为不同类型的操作数是不同的。

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

Try it

语法

¥Syntax

js
x !== y

描述

¥Description

严格不等运算符检查其操作数是否不相等。它是 严格平等 运算符的否定,因此以下两行将始终给出相同的结果:

¥The strict inequality operator checks whether its operands are not equal. It is the negation of the strict equality operator so the following two lines will always give the same result:

js
x !== y;

!(x === y);

比较算法的详细信息请参见 严格平等 算子页面。

¥For details of the comparison algorithm, see the page for the strict equality operator.

与严格相等运算符一样,严格不等运算符始终将不同类型的操作数视为不同的:

¥Like the strict equality operator, the strict inequality operator will always consider operands of different types to be different:

js
3 !== "3"; // true

示例

¥Examples

比较相同类型的操作数

¥Comparing operands of the same type

js
"hello" !== "hello"; // false
"hello" !== "hola"; // true

3 !== 3; // false
3 !== 4; // true

true !== true; // false
true !== false; // true

null !== null; // false

比较不同类型的操作数

¥Comparing operands of different types

js
"3" !== 3; // true
true !== 1; // true
null !== undefined; // true

比较对象

¥Comparing objects

js
const object1 = {
  key: "value",
};

const object2 = {
  key: "value",
};

console.log(object1 !== object2); // true
console.log(object1 !== object1); // false

规范

Specification
ECMAScript Language Specification
# sec-equality-operators

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility

也可以看看