Операторы сравнения. Из всех типов операторов отношения чаще всего используются операторы сравнения – для определения относительного порядка двух величин.

Из всех типов операторов отношения чаще всего используются операторы сравнения – для определения относительного порядка двух величин.

Меньше (<).Результат оператора < равен true, если первый операнд меньше, чем второй операнд; в противном случае он равен false.

Больше (>).Результат оператора > равен true, если его первый операнд больше, чем второй операнд; в противном случае он равен false.

Меньше или равно (<=).Результатом оператора <= является true, если первый операнд меньше или равен второму операнду; в противном случае результат равен false.

Больше или равно (>=).Результат оператора >= равен true, если его первый операнд больше второго или равен ему; в противном случае он равен false.

Эти операторы позволяют сравнивать операнды любого типа. Однако сравнение может выполняться только для чисел и строк, поэтому операнды, не являющиеся числами или строками, преобразуются. Сравнение и преобразование выполняется следующим образом:

• Если оба операнда являются числами или преобразуются в числа, они сравниваются как числа.

• Если оба операнда являются строками или преобразуются в строки, они сравниваются как строки.

• Если один операнд является строкой или преобразуется в строку, а другой является числом или преобразуется в число, оператор пытается преобразовать строку в число и выполнить численное сравнение. Если строка не представляет собой число, она преобразуется в значение NaN и результатом сравнения становится false.

• Если объект может быть преобразован как в число, так и в строку, интерпретатор JavaScript выполняет преобразование в число. Это значит, например, что объекты Date сравниваются как числа, т. е. можно сравнить две даты и определить, какая из них более ранняя.

• Если оба операнда не могут быть успешно преобразованы в числа или строки, операторы всегда возвращают false.

• Если один из операндов равен или преобразуется в NaN, то результатом оператора сравнения является false.

Имейте в виду, что сравнение строк выполняется строго посимвольно, для числовых значений каждого символа из кодировки Unicode. В некоторых случаях стандарт Unicode допускает кодирование эквивалентных строк с применением различных последовательностей символов, но операторы сравнения в JavaScript не обнаруживают этих различий в кодировках; предполагается, что все строки представлены в нормализованной форме. Обратите внимание: сравнение строк производится с учетом регистра символов, т. е. в кодировке Unicode (по крайней мере, для подмножества ASCII) все прописные буквы «меньше» всех строчных букв. Это правило может приводить к непонятным результатам. Например, согласно оператору < строка "Zoo" меньше строки "aardvark".

При сравнении строк более устойчив метод String.localeCompare(), который также учитывает национальные определения «алфавитного порядка». Для сравнения без учета регистра необходимо сначала преобразовать строки в нижний или верхний регистр с помощью метода String.toLowerCase() или String.toUpperCase().

Операторы <= (меньше или равно) и >= (больше или равно) определяют «равенство» двух значений не при помощи операторов равенства или идентичности. Оператор «меньше или равно» определяется просто как «не больше», а оператор «больше или равно» – как «не меньше». Единственное исключение имеет место, когда один из операндов представляет собой значение NaN (или преобразуется в него); в этом случае все четыре оператора сравнения возвращают false.

 

Оператор in

Оператор in требует, чтобы левый операнд был строкой или мог быть преобразован в строку. Правым операндом должен быть объект (или массив). Результатом оператора будет true, если левое значение представляет собой имя свойства объекта, указанного справа. Например:

var point = { x:1, y:1 }; // Определяем объект

var has_x_coord = "x" in point; // Равно true

var has_y_coord = "y" in point; // Равно true

var has_z_coord = "z" in point; // Равно false; это не трехмерная точка

var ts = "toString" in point; // Унаследованное свойство; равно true

 








Дата добавления: 2016-01-09; просмотров: 699;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.