Разница между ==
и ===
(нестрогое/строгое равенство)?
В JavaScript есть два оператора для сравнения: нестрогое равенство (==
) и строгое равенство (===
). Они отличаются тем, как обрабатывают типы данных при сравнении.
1. Нестрогое равенство (==
)
- Оператор
==
преобразует типы данных перед сравнением. Это значит, что если два значения имеют разные типы, JavaScript попытается привести одно или оба значения к общему типу. - Этот процесс называется приведением типов (type coercion).
Пример:
5 == '5'; // true (строка '5' преобразуется в число 5)
true == 1; // true (логическое true преобразуется в число 1)
null == undefined; // true (оба считаются равными при нестрогом сравнении)
2. Строгое равенство (===
)
- Оператор
===
не преобразует типы данных. Он сравнивает как значения, так и их типы. Если типы не совпадают, результатом сравнения будетfalse
.
Пример:
5 === '5'; // false (разные типы: число и строка)
true === 1; // false (разные типы: boolean и number)
null === undefined; // false (разные типы)
Операция | == (нестрогое равенство) |
=== (строгое равенство) |
---|---|---|
5 == '5' |
true |
false |
0 == false |
true |
false |
null == undefined |
true |
false |
NaN == NaN |
false |
false |
[] == false |
true |
false |
'' == 0 |
true |
false |
true == 1 |
true |
false |
[1] == 1 |
true |
false |
Вы уверены?
Элемент будет удален из базы данных навсегда. Вернуть его будет невозможно.