Нестрогое неравенство (!=)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Оператор нестрогого неравенства (!=) проверяет, являются ли два его операнда неравными, возвращая логическое значение. В отличие от оператора строгого неравенства пытается привести и сравнить операнды разных типов.

Интерактивный пример

Синтаксис

js
x != y

Описание

Оператор нестрогого неравенства проверяет, являются ли его операнды неравными, что является отрицанием оператора нестрого равенства. Поэтому следующие две строки всегда дадут одинаковый результат:

js
x != y;

!(x == y);

Подробное описание алгоритма сравнения есть на странице оператора нестрого равенства.

Так же как и оператор нестрогого равенства, оператор нестрогого неравенства пытается привести и сравнить операнды разных типов:

js
3 != "3"; // false

Чтобы предотвратить такое поведение при необходимости считать операнды разных типов неравными, используйте оператор строгого неравенства:

js
3 !== "3"; // true

Примеры

Сравнение без приведения типов

js
1 != 2; // true
"hello" != "hola"; // true

1 != 1; // false
"hello" != "hello"; // false

Сравнение с приведением типов

js
"1" != 1; // false
1 != "1"; // false
0 != false; // false
0 != null; // true
0 != undefined; // true
0 != !!null; // false, обратите внимание на двойное логическое отрицание
0 != !!undefined; // false, обратите внимание на двойное логическое отрицание
null != undefined; // false

const number1 = new Number(3);
const number2 = new Number(3);
number1 != 3; // false
number1 != number2; // true

Сравнение объектов

js
const object1 = {
  key: "value",
};

const object2 = {
  key: "value",
};

console.log(object1 != object2); // true
console.log(object1 != object1); // false

Спецификации

Specification
ECMAScript Language Specification
# sec-equality-operators

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также