JavaScript: Операторы сравнения
Оператор === ( строго равно ) производит сравнение значений операндов без преобразования типов.
Значения считаются равными:
- Если оба значения являются null или undefined .
- Если оба значения являются true или false .
- Если оба значения являются числами с одним и тем набором цифр ( 0 и -0 равны).
- Если оба значения являются строками и они содержат одни и те же 16-битные последовательности.
- Если оба операнда ссылаются на один и тот же объект, массив или функцию.
Значения считаются не равными:
- Если два значения имеют различные типы.
- Если одно или оба значения являются NaN .
- Если строки отличаются содержимым.
- Если две строки выглядят одинаково, но содержат различные последовательности 16-битных значений.
- Если оба операнда ссылаются на разные объекты, массивы или функции.
Если значения операндов равны оператор === возвращает true , если не равны – false :
alert('7' === 7); // false alert(null === null); // true alert((2 + 2) === 4); // true alert(0 === -0); // true
Оператор == ( равно ) выполняет сравнение значений. Если значения операндов имеют разные типы, оператор выполняет неявное преобразование типов и затем пытается выполнить сравнение.
Преобразование типов выполняется по следующим правилам:
- Если одно значение является числом, а другое – строкой, то строка преобразуется в число.
- Если один из операндов имеет значение true , оно преобразуется в число 1 , если значение false – в число 0 .
- Если значение ссылочного типа сравнивается с числом или строкой, оператор попытается преобразовать его к примитивному значению.
Значения считаются равными:
- Если одно значение null , а другое undefined .
- Если оба значения являются null или undefined .
- Если оба значения являются true или false .
- Если оба значения являются числами с одним и тем набором цифр ( 0 и -0 равны).
- Если оба значения являются строками и они содержат одни и те же 16-битные последовательности.
- Если оба операнда ссылаются на один и тот же объект, массив или функцию.
Значения считаются не равными:
- Если одно или оба значения являются NaN .
- Если строки отличаются содержимым.
- Если две строки выглядят одинаково, но содержат различные последовательности 16-битных значений.
- Если оба операнда ссылаются на разные объекты, массивы или функции.
alert(null == undefined); // true alert("123" == 123); // true alert(true == "1"); // true alert(4 == 5); // false
Операторы != ( не равно ) и !== ( строго не равно ) выполняют проверки, в точности противоположные операторам == и === . Например, оператор != возвращает false , если два значения равны друг другу в том смысле, в каком они считаются равными оператором == , и true в противном случае:
alert(4 != 3); // true alert("4" != 4); // false alert("4" !== 4); // true
Оператор > ( больше ) возвращает true , если значение левого операнда больше, чем значение правого операнда, в противном случае он возвращает false :
alert(5 > 3); // true alert(5 > 6); // false
Оператор >= ( больше или равно ) возвращает true , если значение левого операнда больше или равно значению правого операнда, в противном случае он возвращает false :
alert(5 >= 3); // true alert(5 >= 5); // true alert(3 >= 4); // false
Код буквы в нижнем регистре всегда больше, чем код буквы в верхнем регистре. Код цифры находящейся в строке всегда меньше кода буквенного символа в любом регистре. Обычно, буква расположенная в алфавитном порядке раньше меньше , чем буква (в том же регистре) расположенная в алфавитном порядке после неё:
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2023 © puzzleweb.ru
Операторы сравнения
Осваивайте профессию, начните зарабатывать, а платите через год!
Курсы Python Акция! Бесплатно!
Станьте хакером на Python за 3 дня
Веб-вёрстка. CSS, HTML и JavaScript
Станьте веб-разработчиком с нуля
JavaScript: Операторы сравнения
Операторы сравнения позволяют сравнивать два значения между собой и, если условие выполнено, возвращают true , а если нет — false .
Выражения сравнения всегда возвращают логические значения, которые широко применяются в инструкциях if , while или for для управления ходом исполнения программы.
Полный список операторов сравнения в JavaScript приведен в следующей таблице:
Оператор | Описание | Пример | Результат |
---|---|---|---|
== | Равно | 10 == 20 | false |
=== | Строго равно (идентичность) | «20» === 20 | false |
!= | Не равно | 10 != 20 | true |
!== | Строго не равно | 20! == 20 | false |
> | Больше чем | 20 > 10 | true |
>= | Больше или равно | 20 >= 10 | true |
Меньше чем | 20 < 10 | false | |
Меньше или равно | 20 | false |
Равенство (==) и неравенство (!=)
Оба оператора принимают операнды любого типа и, если операнды равны, оператор равенства == возвращает true , а оператор неравенства != возвращает – false .
Получив операнды разных типов, эти операторы пытаются привести их к одному типу и сравнивают уже преобразованные значения.
- Если какой-либо операнд число или булево значение, то операнды преобразуются в числа, при этом true преобразуется в 1, а false преобразуется в 0.
- Если какой-либо операнд строка – второй преобразуются в строку.
- Если одно из значений представляет собой объект, а другое – число или строку, то объект преобразуется в элементарный тип.
- Если одно из значений равно null , а другое – undefined , то они равны.
- Значения null и undefined не преобразуются для сравнения ни в какие другие значения.
- Значение NaN считается не равным никакому другому значению, включая само себя. При его наличии оператор равенства всегда возвращает false , а оператор неравенства – true .
- Если оба операнда являются объектами, то они сравниваются, чтобы выяснить, один ли это объект. Если да, возвращается true , иначе – false .
Истина или ложь?
В этой главе будет много нового, но уж очень сложно быть не должно: ведь, в общем-то, всё вертится вокруг простой идеи — истина или ложь?
До сих пор мы всегда имели дело лишь с примитивными типами данных — с числами и строками. Быть может, вам уже встречался термин «примитивный» применительно к программированию? Если нет, я поясню: «примитивный» (ещё говорят «простой») означает, что этот тип данных не является объектом (к этому моменту мы ещё вернёмся) и не имеет встроенных методов работы (то есть функций⚙️).
Тип данных, который вам обязательно понадобятся, называется булевым boolean , или логическим. Булевый тип всегда имеет значение либо true — истина, либо false — ложь. И только так, и никак иначе! Он либо врёт, либо говорит правду — пан или пропал, свет включен или выключен, либо есть, либо нет. Вы либо сделали домашнее задание, либо нет. Только два 2️⃣ значения true или false .
Видео
Операторы равенства
Булевы значения приходятся как нельзя кстати, когда нам необходимо что-то сравнить в JavaScript. Когда такая необходимость появляется, мы сразу же вызываем операторы сравнения. Сейчас мы последовательно изучим все восемь операторов сравнения, но штука в том, что в результате работы каждого из них мы всё равно всегда останемся с булевым значением — либо true , либо false .
Равно ==
Оператор равно сначала приводит операнды к одному типу, и затем применяет строгое сравнение. Если оба операнда являются объектами, то JavaScript сравнивает внутренние ссылки, которые равны в том случае, если они ссылаются на один и тот же объект в памяти.