--- title: Рівність (==) slug: Web/JavaScript/Reference/Operators/Equality tags: - JavaScript - Довідка - Оператор translation_of: Web/JavaScript/Reference/Operators/Equality ---
{{jsSidebar("Operators")}}

Оператор рівності (==) перевіряє, чи два операнди рівні, повертаючи результат типу Boolean. На відміну від оператору строгої рівності, він намагається перетворити для порівняння операнди, які належать до різних типів.

{{EmbedInteractiveExample("pages/js/expressions-equality.html")}}

Синтаксис

x == y

Опис

Оператори рівності (== та !=) використовують алгоритм абстрактної рівності для порівняння двох операндів. Його можна загалом описати наступним чином:

Найбільш помітна відмінність між цим оператором та оператором строгої рівності (===) полягає в тому, що оператор строгої рівності не намагається виконувати перетворення типів. Натомість, оператор строгої рівності завжди вважає операнди різних типів різними.

Приклади

Порівняння без перетворення типів

1 == 1;              // true
"привіт" == "привіт";  // true

Порівняння з перетворенням типів

"1" ==  1;            // true
1 == "1";             // true
0 == false;           // true
0 == null;            // false
0 == undefined;       // false
null == undefined;    // true

const number1 = new Number(3);
const number2 = new Number(3);
number1 == 3;         // true
number1 == number2;   // false

Порівняння об'єктів

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

object1 == object2 // false
object2 == object2 // true

Порівняння рядків та об'єктів String

Зауважте, що рядки, створені за допомогою new String(), є об'єктами. Якщо ви порівняєте один з них з рядковим літералом, об'єкт String буде перетворений на рядковий літерал, і їхній вміст буде порівнюватись. Однак, якщо обидва операнди є об'єктами String, вони порівнюються як об'єкти та мусять посилатись на один і той самий об'єкт, щоб вважатись однаковими:

const string1 = "привіт";
const string2 = String("привіт");
const string3 = new String("привіт");
const string4 = new String("привіт");

console.log(string1 == string2); // true
console.log(string1 == string3); // true
console.log(string2 == string3); // true
console.log(string3 == string4); // false
console.log(string4 == string4); // true

Порівняння дат та рядків

const d = new Date('December 17, 1995 03:24:00');
const s = d.toString(); // наприклад: "Sun Dec 17 1995 03:24:00 GMT-0800 (Pacific Standard Time)"
console.log(d == s);    //true

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

Специфікація
{{SpecName('ESDraft', '#sec-equality-operators', 'Equality operators')}}

Сумісність з веб-переглядачами

{{Compat("javascript.operators.equality")}}

Див. також