Операторы сравнения
Описание, примеры
Операндами операторов сравнения могут быть численные и строковые значения. Строки сравниваются, исходя из стандартного лексикографического порядка при использовании Unicode.
Яваскрипт допускает как строгое сравнение, так и сравнение с приведением типов. Для строгого сравнения оба операнда должны иметь одинаковый тип и:
- Две строки строго равны, если состоят из одинаковой последовательности символов
- Два числа строго равны, если равны в обычном смысле слова.
+0 строго равен -0.
NaN строго не равно ничему, включая NaN
- Два булевых операнда строго равны, если они оба
true или false
- Два операнда-объекта строго равны, если являются ссылками на один и тот же общий объект
Null и Undefined равны ==, но не строго равны ===
Следующая таблица описывает операторы сравнения:
| Оператор |
Описание |
Примеры, возвращающие true при var1=3, var2=4 |
Равно (==) |
Если два операнда не одного типа, javascript преобразовывает типы и сравнивает строго. Если какой-либо операнд - число или булево значение, то операнды преобразуются в числа; если какой-либо операнд строка - второй преобразуются в строку |
3 == var1 "3" == var1 3 == '3'
|
Не равно (!=) |
Возвращает true, если операнды не равны. Если операнды имеют разный тип, javascript преобразовывает. |
var1 != 4 var1 != "5"
|
Строго равно (===) |
Возвращает true, если операнды строго равны (см. выше), без преобразования типов. |
3 === var1
|
Строго не равно (!==) |
Возвращает true, если операнды не являются строго равными (см. выше) или имеют разные типы. |
var2 !== 3 3 !== '3'
|
Больше (>) |
Возвращает true, если левый операнд больше правого. |
var2 > var1
|
Больше или равно (>=) |
Возвращает true, если левый операнд больше правого или равен ему. |
var2 >= var1 var1 >= 3
|
Меньше (<) |
Возвращает true, если левый операнд меньше правого. |
var1 < var2
|
Меньше или равно (<=) |
Возвращает true, если левый операнд меньше правого или равен ему. |
var1 <= var2 var2 <= 5
|
Использование операторов сравнения
Стандартные операторы равенства (== и !=) сравнивают два операнда безотносительно их типа. Строгое равенство (=== и !==) производит сравнения операндов одинакового типа. Используйте строгое равенство, если операнды должны иметь одинаковый тип и значение. В ином случае, используйте обычные операторы равенства, которые позволяют проверить равенство операндов, даже если они разного типа.
При конвертации типов яваскрипт преобразует String, Number, Boolean и Object следующим образом:
- При сравнении числа и строки, строка преобразуется в числовое значение. Яваскрипт при этом получает значение числа из строкового литерала:
"123" == 123.
- Если один из операндов - булевый, то он преобразуется к 1, если он
true и к +0, если он false
- Если объект сравнивается с числом или строкой, яваскрипт пытается получить соответствующее значение для объекта. Он преобразует объект к элементарному значению, строке или числу, используя методы
valueOf и toString. Если преобразовать объект не удается - генерируется ошибка выполнения.
|
Автор: Гость (не зарегистрирован), дата: 28 сентября, 2010 - 16:13
#permalinkПочему
?
Автор: При3 (не зарегистрирован), дата: 3 ноября, 2010 - 20:14
#permalinkif (0=>h1>=5000) {document.write("<center><b>Вы убили слепого пса</b><br><img src=http://stalker-epos.com/zp/mutants/epos-zp-slepoy_dog.jpg></center>")} if (5000=>h1>=9900) {document.write("<center><b>Вы убили псевдособаку</b><br><img src=http://stalker-epos.com/zp/mutants/epos-zp-pseudodog.jpg></center>")}Где ошибка? Почему не работает?! Так вообще можно ставить y=>h1>=x ??
Автор: Erika (не зарегистрирован), дата: 12 февраля, 2012 - 03:13
#permalinkУвидела вопрос почему null==0 false
В пример php код
<?php $image=null; if(file_exists($dir.'/'.$image) && preg_match('#\.png$|\.jpg$|\.jpeg$|\.gif$#i',basename($image)))//Проверяем наличие изображения переданого переменной в указаной папке. При этом формат изображения (preg_match(); должен соотведствовать шаблону. Регистр (#i) не имеет значения) $image="<img src=\"".$dir."/".$image."\" />"; echo $image;//Если изображение имеется на сервере - оно будет показано. Нет - строчка останется пустой ?>Если бы в начале кода было указано
$image=0;
То вывело бы нолик, а так все как доХтор прописал
Могу для примера и на жабе чет настропать но, оно аналогично...
Автор: Erika (не зарегистрирован), дата: 12 февраля, 2012 - 03:21
#permalinkМожно ещё и так
$image=false; //Проверяем изображение (Выше писала уж0) if($image!=false) echo $image; else print_r("Украли картинку уж0\r\n"); //Или так //Код проверки if(isset($image)) echo $image; elseif(!isset($image)) print_r( "Нет такого изображения\r\n");Автор: Гость (не зарегистрирован), дата: 31 марта, 2012 - 01:32
#permalinkВопрос про условия:
if(A>=100) {var B = 10;}; if(A<100) {var B = 5}; if(C>=50) {var D = 20;}; if(C<50) {var D = 50}; var E = B+D;Значения A и C вводятся в поле вручную. Как сложить B и D? Почему этот код не работает? Пишет условие B не найдено.
Автор: макxxxx (не зарегистрирован), дата: 7 января, 2013 - 22:22
#permalink"Для строгого сравнения оба операнда должны иметь одинаковый тип и:"
Буква "и" не лишняя?
Автор: макxxxx (не зарегистрирован), дата: 7 января, 2013 - 22:50
#permalink"Стандартные операторы равенства (== и !=) сравнивают два операнда безотносительно их типа."
Может быть уместнее употребить операторы сравнения?
Автор: ВиталийАТ (не зарегистрирован), дата: 3 декабря, 2013 - 07:51
#permalinkКак сравнить адрес строки URL?
Автор: WearponiX (не зарегистрирован), дата: 12 августа, 2015 - 13:09
#permalinkГде ошибка? Ввожу 2 и 123456 а код пишет что 2 больше.
<script language="JavaScript"> window.onclick = min; var a=""; b=""; function min(a,b){ alert("Enter two numbers."); a = prompt('Number one:', 0); b = prompt('Number two:', 0); if (b<a){ alert("Number "+a+" is bigger."); } else if (b>a){ alert("Number "+b+" is bigger."); } else if (a==b){ alert("Numbers "+a+" and "+b+" are similar."); }; }</script>Автор: jonnyVy (не зарегистрирован), дата: 5 октября, 2015 - 09:51
#permalinkПочему этот код
выводит true, а вот этот
выводит false?