Strict equality (===)
Сравнивает значения без преобразования типов.
Доступно с: ES3
Синтаксис
a === b / a !== bПримеры
Строгое и нестрогое сравнение:
console.log(5 === 5);
console.log(5 === '5');
console.log(5 == '5');Результат:
true
false
trueСтранности нестрогого сравнения:
console.log(0 == '');
console.log(null == undefined);
console.log(null === undefined);Результат:
true
true
falseОбъекты сравниваются по ссылке:
const a = { x: 1 };
const b = { x: 1 };
console.log(a === b);
console.log(a === a);Результат:
false
trueПримечания
Всегда используйте === и !==. Нестрогое == перед сравнением приводит типы по запутанным правилам. Единственное частое исключение — value == null, которое проверяет сразу и null, и undefined.
См. также
- Object.is — Сравнивает два значения почти как ===, но правильно обрабатывает NaN и -0.
- typeof — Возвращает строку с типом значения.
- Number.isNaN — Проверяет, что значение — NaN, без преобразования типов.
В учебнике
- Сравнение — Операторы сравнения в JavaScript — больше, меньше, строгое и нестрогое равенство, сравнение строк и NaN.