Thanks to visit codestin.com
Credit goes to developer.mozilla.org

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

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

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..

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

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

console.log(1 != 1);
// Expected output: false

console.log("hello" != "hello");
// Expected output: false

console.log("1" != 1);
// Expected output: false

console.log(0 != false);
// Expected output: false

Синтаксис

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® 2027 Language Specification
# sec-equality-operators

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

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