От автора: приветствую вас, друзья. В этой статье мы с вами вернемся к теме операторов в JavaScript и рассмотрим тему операторов сравнения. В значительно степени именно благодаря операторам сравнения в JavaScript мы можем писать полноценные скрипты на JavaScript. Приступим.
Давайте начнем с перечисления операторов сравнения. Как и арифметические операторы, практически все операторы сравнения JavaScript должны быть знакомы вам из курса математики начальной школы. Итак, вот они:
> больше
< меньше
>= больше или равно
<= меньше или равно
== равно
!= не равно
=== строгое равенство (тождественно равно)
!== строгое не равно (тождественно не равно)
Как видите, половина из этих операторов должна быть вам уже знакома и записывается практически так же, как и в школьной математике. Давайте теперь посмотрим на каждый из этих операторов в отдельности. Да, и прежде, чем мы это сделаем, пару слов о том значение, которое вернет операция сравнения. Как вы, наверное, уже догадались, операция сравнения вернет либо истину (true), либо ложь (false), т.е. всегда результатом будет булево значение.
Итак, операторы больше (>), меньше (<), больше или равно (>=) и меньше или равно (<=). Все просто, операторы сравнивают числа точно так же, как и в математике:
1 2 3 4 |
3 > 3; // false 3 < 3; // false 3 >= 3; // true 3 <= 3; // true |
Результаты сравнения чисел вполне очевидны и предсказуемы. Следующий оператор равно (==). Не путайте с оператором присваивания (=), который просто присваивает значение переменной. Оператор равно именно сравнивает равенство неких значений:
1 |
3 == 3; // true |
Обратный ему оператор не равно (!=). В школьной математике он записывается несколько иначе (≠):
1 2 |
3 != 3; // false 2 != 3; // true |
Прелесть операторов сравнения в JavaScript заключается в том, что они позволяют сравнивать не только числа, но и строки. И вот здесь нужно быть аккуратным и не забывать о возможных нюансах. Строки сравниваются побуквенно и большей считается та строка, сравниваемая буква которой идет позже в алфавите. В общем, принцип абсолютно тот же, что и в словарях. Примеры:
1 2 3 |
alert('а' > 'б'); // false alert('а' < 'б'); // true alert('а' == 'б'); // false |
А так со словами:
1 2 3 |
alert('котенок' > 'щенок'); // false, первая буква к < щ alert('котенок' > 'кот'); // true, первые три буквы (кот) равны, следующая буква (е) в первом слове больше, чем ничего во втором слове alert('программа' < 'программирование'); // true, части программ обоих слов равны, далее сравниваются а < и == true |
А теперь пример того, как надо быть аккуратным:
1 |
alert('2' > '10'); // true |
Упс! — скажете вы. Как так, ведь 2 меньше 10? Почему же тогда данное выражение вернет true? На самом деле здесь мы сравниваем уже не числа, а строки. Ну а коль так, то они будут сравниваться посимвольно, как обычные строки. Ну а 2 больше 1. Не забывайте об этом нюансе и не забывайте, что вы можете привести числовую строку к числу с помощью унарного плюса.
Ну и последние два оператора: строгое равно (===) и строгое не равно (!==). Для чего они нужны и в чем их отличие от обычных операторов равно (==) и не равно (!=). Отличие в том, что тождественные равно и не равно сравнивают не только значения но и типы данных. При этом true будет результатом той операции, где равны и значения, и типы. В противном случае будет возвращено false:
1 2 3 4 |
alert(2 == '2'); // true, значения равны alert(2 === '2'); // false, значения равны, но типы нет: 2 (число) '2' (строка) alert(2 != '2'); // false, значения равны alert(2 !== '2';); // true, значения равны, но типы нет: 2 (число) '2' (строка) |
На этом мы завершаем статью и знакомство с основными операторами JavaScript. Если вы хотите больше узнать о JavaScript, тогда рекомендую обратить свое внимание на уроки по JavaScript и отдельный курс по языку JavaScript. Удачи!