This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Строгое равенство (===)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Операторстрогого равенства (===) проверяет, являются ли два его операнда равными, возвращая логическое значение. В отличие от операторанестрогого равенства всегда считает операнды разных типов неравными.
In this article
Интерактивный пример
console.log(1 === 1);// Expected output: trueconsole.log("hello" === "hello");// Expected output: trueconsole.log("1" === 1);// Expected output: falseconsole.log(0 === false);// Expected output: falseСинтаксис
js
x === yОписание
Операторы строгого равенства (=== и!==) производят проверкуравенства типов и значений.
- Если типы операндов различаются, возвращает
false. - Если оба операнда являются объектами, возвращает
trueтолько если они оба ссылаются на один и тот же объект. - Если оба операнда являются
nullили оба являютсяundefined, возвращаетtrue. - Если один из операндов является
NaN, возвращаетfalse. - В остальных случаях:
- Числа должны иметь идентичные значения.
+0и-0считаются равными между собой. - Строки должны содержать одинаковые символы, в одинаковом порядке и регистре.
- Логические значения должны оба быть
trueили обаfalse.
- Числа должны иметь идентичные значения.
Основная разница между этим оператором и операторомнестрогого равенства (==) в том, что если у операндов разные типы, то оператор== попытается привести их к одному типу перед проверкой.
Примеры
>Сравнение операндов одного типа
js
"hello" === "hello"; // true"hello" === "hola"; // false3 === 3; // true3 === 4; // falsetrue === true; // truetrue === false; // falsenull === null; // trueСравнение операндов разных типов
js
"3" === 3; // falsetrue === 1; // falsenull === undefined; // false3 === new Number(3); // falseСравнение объектов
js
const object1 = { key: "value",};const object2 = { key: "value",};console.log(object1 === object2); // falseconsole.log(object1 === object1); // trueСпецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-equality-operators> |