Программирование HTML JavaScript: различие сравнений !== и != Thu, January 22 2026  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


JavaScript: различие сравнений !== и != Печать
Добавил(а) microsin   

Отличие между операторами !== и != в строгости сравнения. В JavaScript есть строгие (`!==`/`===`) и нестрогие (`!=`/`==`) операторы сравнения.

Основные отличия:

Оператор Название Сравнивает Преобразование типов
`!==` Строгое неравенство И значение, И тип НЕ преобразует типы
`!=` Нестрогое неравенство Только значение Автоматически преобразует типы

[Практические примеры]

// Пример 1: Число и строка с тем же числом
const num = 5
const str = '5'
console.log(num !== str) // true (разные типы: number vs string) console.log(num != str) // false (преобразовано к одному типу: 5 == 5)

// Пример 2: null и undefined console.log(null !== undefined) // true (разные типы) console.log(null != undefined) // false (специальное правило: они равны при нестрогом сравнении)

Для сравнения JSON-строк обычно рекомендуется использовать строгие операторы (`!==`):

if (JSON.stringify(currentConfig.value) !== JSON.stringify(originalConfig.value)) {
// Действия при различии }

Почему `!==` лучше:

1. Предсказуемость — не происходит скрытого преобразования типов.
2. Безопасность — избегаем неожиданного поведения
3. Стандарт — в современном JavaScript это общепринятая практика.

[Опасность нестрогого сравнения]

// Потенциальная проблема:
const a = 0
const b = false
const c = ''
console.log(a !== b) // true (0 !== false) console.log(a != b) // false (0 == false) ← может быть неочевидно!
console.log(b !== c) // true (false !== '') console.log(b != c) // false (false == '') ← снова неочевидно!

Рекомендация: всегда используйте `!==` и `===` в современном JavaScript, кроме редких случаев, когда вам специально нужно нестрогое сравнение (например, проверка на `null` или `undefined` одновременно):

// Допустимое использование !=
if (value != null) {
// Пропустит и null, и undefined }

// Эквивалентно:
if (value !== null && value !== undefined) {
// Более явно, но длиннее }

 

 

Добавить комментарий


Защитный код
Обновить

Top of Page