Spec-Zone.ru › JavaScript

Строгое равенство (===)

Базовый уровень Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Оператор строгого равенства (===) проверяет, равны ли два его операнда, возвращая логический результат. В отличие от оператора нестрогого равенства, оператор строгого равенства всегда считает операнды разных типов различными.

Попробуйте

console.log(1 === 1);
// Expected output: true

console.log("hello" === "hello");
// Expected output: true

console.log("1" === 1);
// Expected output: false

console.log(0 === false);
// Expected output: false

Синтаксис

x === y

Описание

Операторы строгого равенства (=== и !==) предоставляют семантику IsStrictlyEqual.

  • Если операнды разных типов, вернуть 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

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-equality-operators

Совместимость с браузерами

Настольные Мобильные Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
strict_equality
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0

См. также

  • Нестрогое равенство (==)
  • Неравенство (!=)
  • Строгое неравенство (!==)

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Strict_equality

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API