Оператор !== в 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, если значения разные или отличаются по типу данных. В отличие от !=, он не делает автоматическое преобразование типов. В условиях !== удобно использовать, когда нужно проверить, что значение не равно ожидаемому. При сравнении объектов и массивов важно помнить, что сравнивается ссылка, а не содержимое.