Узнайте все, что вам нужно знать об операторах сравнения в JavaScript.

Оператор сравнения

Оператор сравнения в информатике также называется оператором отношения. Это конструкция или оператор языка программирования, который определяет и проверяет некую связь между двумя объектами. Они включают числовое равенство, например, 5 = 5, и неравенства, например, 4 ≥ 3. Обычно эти операторы оцениваются как истинные или ложные, если условное отношение между двумя операндами выполняется или нет. Операторы сравнения можно понимать как отдельные случаи логических оснований.

Операторы сравнения в JavaScript записываются так:

  • Больше или меньше: a ›b, a‹ b.
  • Больше, меньше или равно: a ›= b, a‹ = b.
  • Равно: a == b, (Двойной знак равенства) == означает проверку на равенство, хотя одиночный a = b означает присвоение.
  • Не равно, кот! = б.

Знак тройного равенства (===)

Это тип оператора сравнения, а именно оператор равенства. Мы используем его для сравнения двух вещей, чтобы понять, равны ли они. Мы можем использовать оператор равенства, чтобы связать переменную со строкой, переменную с числом, переменную с математическим выражением или переменную с переменной. Мы можем использовать его для сравнения различных комбинаций. Ниже приведены все допустимые первые строки в операторах if:

if (fullName === "Mansoor" + " " + "Ahmed") {
if (fullName === firstName + " " + "Mansoor") {
if (fullName === firstName + " " + "Mansoor") {
if (fullName === firstName + " " + lastName) {
if (totalCost === 81.50 + 135) {
if (totalCost === materialsCost + 135) {
if (totalCost === materialsCost + laborCost) { if (x + y === a - b) {

В операторе равенства учитывается регистр. «Роза» не означает «роза», когда мы сравниваем струны. Другой оператор сравнения,! ==, противоположен ===. Это означает, что не равно.

1 if (myTicketNumber !== 487208) {
2 alert("Better luck next time.");
3 }

Как и ===, оператор неравенства может использоваться для сравнения чисел, строк, переменных, математических выражений и комбинаций. Использование оператора неравенства чувствительно к регистру, как и ===, при сравнении строк. Это правда, что «Роза»! == «роза». Ниже приведены еще 4 оператора сравнения, которые обычно используются для сравнения чисел.

> is greater than
< is less than
>= is greater than or equal to
<= is less than or equal to

Результат в логическом

Логическое значение возвращается всеми операторами сравнения:

  • Верно: означает «да», «правильно» или «правда».
  • Ложь: означает «нет», «неправильно» или «не соответствует действительности».

Ложь: означает «нет», «неправильно» или «не соответствует действительности».

Например:

alert ( 2 > 1 ); // true (correct)
alert ( 2 == 1); // false (wrong)
alert( 2 != 1 ); // true (correct)

Результат сравнения можно присвоить переменной, как и любое значение:

let result = 6 > 5; // allocate the result of the comparison
alert ( result); // true

Сравнение строк

JavaScript использует предполагаемый словарный или лексикографический порядок, чтобы понять, является ли строка больше другой. Строки сравниваются по буквам.

Например, алгоритм сравнения двух строк прост:

  1. Свяжите первый символ обеих строк.
  2. Если первый символ из первой строки больше или меньше, чем другие строки, то первая строка больше или меньше второй. Мы закончили.
  3. Затем таким же образом сравните вторые символы, если первые символы обеих строк совпадают.
  4. Повторяйте до конца любой строки.
  5. Они равны, если обе струны заканчиваются одинаковой длиной. Иначе, чем длиннее струна, тем больше.

Сравнение разных типов

JavaScript меняет значения на числа при связывании значений разных типов.

Например:

alert( '2' > 1 ); // true, string '2' becomes a number 2
alert( '01' == 1 ); // true, string '01' becomes a number 1

Истина становится 1, а ложь становится 0 для логических значений. Например:

alert( true == 1 ); // true
alert ( false == 0); // true

Строгое равенство

Обычная проверка равенства == может не отличить 0 от false:

alert ( 0 == false); // true

То же самое происходит с пустой строкой:

alert(‘‘ == false ); // true

Это происходит из-за того, что операнды разных типов преобразуются в числа оператором равенства ==. Как и false, пустая строка становится нулем. К чему подготовиться, если мы хотим отличить 0 от ложного? Оператор твердого равенства === проверяет равенство без преобразования типа. Другими словами, можно сказать, что если a и b имеют разные типы, то a === b напрямую возвращает false без попытки их преобразовать. Попробуем:

Предупреждение (0 === ложь); // false, потому что типы разные. Еще есть оператор «строгого неравенства»! == аналог! =. Оператор твердого равенства писать немного дольше. Это проясняет, что происходит, и оставляет меньше места для ошибок.

Сравнение с null и undefined

Когда null или undefined сравниваются с другими значениями, происходит неинтуитивное поведение.

Из-за каждого из них для строгой проверки равенства === эти значения разные, это другой тип. Предупреждение (null === undefined); // ложный

Если нестрогая проверка == есть особое правило. Эти двое - сладкая парочка. Они равны друг другу. Иного значения они не имеют. предупреждение (null == undefined); // правда. Null становится 0, а undefined становится NaN для математики и других сравнений ‹› ‹=› = null или undefined преобразуются в числа. Когда мы применим эти правила, посмотрим, что произойдет. Остальные, что наиболее важно, как не попасть с ними в ловушку.

Странный результат: null vs 0

Давайте сравним ноль с нулем:

alert( null > 0 ); // (1) false
alert( null == 0 ); // (2) false
alert (null >= 0 ); // (3) true

Последний результат указывает на то, что «null больше или равно нулю». Следовательно, в одном из приведенных выше сравнений это должно быть правдой, но оба они ложны. Причина в том, что проверка на равенство == и сравнения ›‹ ›=‹ = работают по-разному. При сравнении значение null преобразуется в число, и оно рассматривается как 0. Поэтому (3) null ›= 0 истинно, а (1) null› 0 ложно.

Для получения дополнительной информации посетите: https://www.technologiesinindustry4.com/2021/01/what-are-javascript-comparison-operators.html

Больше контента на plainenglish.io