7 методов выполнения утверждений неравенства в JavaScript

В JavaScript выполнение утверждений о неравенстве является распространенной задачей при написании тестов или проверке данных. В этой статье мы рассмотрим различные методы, которые можно использовать, чтобы доказать, что два значения не равны. Мы предоставим примеры кода для каждого метода, чтобы помочь вам понять их использование. Давайте погрузимся!

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

const expected = 5;
const actual = 10;
if (expected !== actual) {
  console.log('Assertion passed: Values are not equal.');
} else {
  console.log('Assertion failed: Values are equal.');
}

Метод 2: использование оператора слабого неравенства (!=)
Оператор свободного неравенства (!=) проверяет, не равны ли два значения, но допускает приведение типов. Перед сравнением операнды преобразуются к одному и тому же типу. Вот пример:

const expected = 5;
const actual = '5';
if (expected != actual) {
  console.log('Assertion passed: Values are not equal.');
} else {
  console.log('Assertion failed: Values are equal.');
}

Метод 3. Использование утверждения о глубоком неравенстве в средах тестирования
Среды тестирования, такие как Mocha, Jest и Chai, предоставляют методы для выполнения утверждений о глубоком неравенстве. Эти методы глубоко сравнивают объекты или массивы, чтобы гарантировать, что все свойства или элементы не равны. Вот пример использования утверждения deepЧай:

const expected = { name: 'John', age: 25 };
const actual = { name: 'John', age: 30 };
chai.assert.notDeepEqual(actual, expected);

Метод 4: использование отрицания утверждения равенства.
Вы можете отрицать утверждение равенства, используя оператор строгого равенства (===) или оператор свободного равенства (==). Этот подход проверяет, равны ли значения, а затем отменяет результат. Вот пример:

const expected = 5;
const actual = 10;
if (!(expected === actual)) {
  console.log('Assertion passed: Values are not equal.');
} else {
  console.log('Assertion failed: Values are equal.');
}

Метод 5: использование метода Array.prototype.every()
Если вы хотите убедиться, что два массива не равны, вы можете использовать метод every()для сравнения каждого элемента по отдельности. Вот пример:

const expected = [1, 2, 3];
const actual = [1, 4, 3];
const arraysAreEqual = expected.every((value, index) => value !== actual[index]);
if (arraysAreEqual) {
  console.log('Assertion passed: Arrays are not equal.');
} else {
  console.log('Assertion failed: Arrays are equal.');
}

Метод 6: использование метода JSON.stringify()
Вы можете преобразовать оба значения в строки JSON с помощью JSON.stringify()и сравнить строки на предмет неравенства. Этот метод хорошо работает для сравнения сложных объектов или массивов. Вот пример:

const expected = { name: 'John', age: 25 };
const actual = { name: 'Jane', age: 25 };
if (JSON.stringify(expected) !== JSON.stringify(actual)) {
  console.log('Assertion passed: Objects are not equal.');
} else {
  console.log('Assertion failed: Objects are equal.');
}

Метод 7. Использование библиотеки тестирования или библиотеки утверждений
Использование библиотеки тестирования или библиотеки утверждений, такой как Chai или Jest, упрощает процесс выполнения утверждений, включая утверждения о неравенстве. Эти библиотеки предоставляют специальные функции или методы, специально разработанные для утверждений. Вот пример использования Chai:

const chai = require('chai');
const expect = chai.expect;
const expected = 5;
const actual = 10;
expect(actual).to.not.equal(expected);

В этой статье мы рассмотрели семь различных методов выполнения утверждений о неравенстве в JavaScript. Эти методы обеспечивают гибкость и подходят для различных сценариев, независимо от того, сравниваете ли вы примитивные значения, сложные объекты или массивы. Включив эти методы в процесс тестирования или проверки, вы сможете гарантировать корректность своего кода JavaScript.