Оператор !== в JavaScript
- Что делает оператор !==
- Синтаксис
- Сравнение значения и типа
- Отличие от !=
- Оператор !== в условиях
- Объекты и массивы
- Итого
Оператор !== проверяет строгое неравенство. Он возвращает true, если значения не равны или отличаются по типу данных.
console.log(10 !== 5);
console.log('admin' !== 'user');
Результат:
true
true
В обоих примерах значения разные, поэтому результат true.
Что делает оператор !==
!== - это обратная проверка к ===.
console.log(10 === 10);
console.log(10 !== 10);
Результат:
true
false
Если строгое равенство возвращает true, строгое неравенство вернет false. И наоборот.
Синтаксис
значение1 !== значение2
Оператор !== возвращает boolean:
true- значения строго не равны;false- значения строго равны.
let result = 'JavaScript' !== 'CSS';
console.log(result);
Результат:
true
Сравнение значения и типа
Оператор !== учитывает тип данных.
console.log(10 !== '10');
console.log(false !== 0);
console.log(null !== undefined);
Результат:
true
true
true
Значения могут выглядеть похожими, но если типы разные, строгое неравенство возвращает true.
Отличие от !=
В JavaScript есть оператор !=. Он проверяет неравенство, но перед сравнением может преобразовать типы.
console.log(10 != '10');
console.log(10 !== '10');
Результат:
false
true
В первом случае JavaScript приводит строку ‘10’ к числу и считает значения равными. Во втором случае типы разные, поэтому !== возвращает true.
В обычном коде для строгой и понятной проверки лучше использовать !==.
Оператор !== в условиях
Оператор !== часто используют в if, когда нужно проверить, что значение не совпадает с ожидаемым.
let status = 'draft';
if (status !== 'published') {
console.log('Статья еще не опубликована');
}
Код внутри if выполнится, потому что status не равен строке ‘published’.
Еще один пример:
let answer = prompt('Сколько будет 2 + 2?');
if (Number(answer) !== 4) {
console.log('Ответ неверный');
}
prompt() возвращает строку, поэтому перед сравнением мы явно превращаем ответ в число через Number().
Объекты и массивы
С объектами и массивами !== сравнивает ссылку, а не содержимое.
console.log({} !== {});
console.log([] !== []);
Результат:
true
true
Два пустых объекта или два пустых массива выглядят одинаково, но это разные значения в памяти.
Если сравнить одну и ту же ссылку, результат будет false:
let user = { name: 'Анна' };
let sameUser = user;
console.log(user !== sameUser);
Результат:
false
Здесь обе переменные указывают на один и тот же объект.
Итого
Оператор !== проверяет строгое неравенство. Он возвращает true, если значения разные или отличаются по типу данных. В отличие от !=, он не делает автоматическое преобразование типов. В условиях !== удобно использовать, когда нужно проверить, что значение не равно ожидаемому. При сравнении объектов и массивов важно помнить, что сравнивается ссылка, а не содержимое.