Строгое равенство (===)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Оператор строгого равенства (===
) проверяет, являются ли два его операнда равными, возвращая логическое значение. В отличие от оператора нестрогого равенства всегда считает операнды разных типов неравными.
Интерактивный пример
Синтаксис
x === y
Описание
Операторы строгого равенства (===
и !==
) производят проверку равенства типов и значений.
-
Если типы операндов различаются, возвращает
false
. -
Если оба операнда являются объектами, возвращает
true
только если они оба ссылаются на один и тот же объект. -
Если оба операнда являются
null
или оба являютсяundefined
, возвращаетtrue
. -
Если один из операндов является
NaN
, возвращаетfalse
. -
В остальных случаях:
- Числа должны иметь идентичные значения.
+0
и-0
считаются равными между собой. - Строки должны содержать одинаковые символы, в одинаковом порядке и регистре.
- Логические значения должны оба быть
true
или обаfalse
.
- Числа должны иметь идентичные значения.
Основная разница между этим оператором и оператором нестрогого равенства (==
) в том, что если у операндов разные типы, то оператор ==
попытается привести их к одному типу перед проверкой.
Примеры
Сравнение операндов одного типа
"hello" === "hello"; // true
"hello" === "hola"; // false
3 === 3; // true
3 === 4; // false
true === true; // true
true === false; // false
null === null; // true
Сравнение операндов разных типов
"3" === 3; // false
true === 1; // false
null === undefined; // false
3 === new Number(3); // false
Сравнение объектов
const object1 = {
key: "value",
};
const object2 = {
key: "value",
};
console.log(object1 === object2); // false
console.log(object1 === object1); // true
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-equality-operators |
Совместимость с браузерами
BCD tables only load in the browser