Page 30 - 6105
P. 30
alert ( 'Привіт'> 'Прив'); // true, так як 'і' більше
ніж "нічого".
Таке порівняння називається словниковим.
Порівняння різних типів
При порівнянні значень різних типів, використовується числове
перетворення. Воно застосовується до верхнього значення.
Наприклад:
alert ( '2'> 1); // true, порівнюється як 2> 1
alert ( '01' == 1); // true, порівнюється як 1 == 1
alert (false == 0); // true, false стає числом 0
alert (true == 1); // true, так як true стає числом 1.
Строга рівність
Звичайний оператор == не може відрізнити 0 від false:
alert (0 == false); // true
Та ж ситуація з пустим рядком:
alert ( '' == false); // true
Це наслідок того, що операнди різних типів перетворилися в числа.
Порожній рядок, як і false, при перетворенні до числа дають 0. Для перевірки
рівності без перетворення типів використовуються оператори строгої рівності ===
(потрійне дорівноє) і !==.
Якщо тип даних різний, то вони завжди повертають false:
alert (0 === false); // false, тому що типи різні
Порівняння з null і undefined
Проблеми зі спеціальними значеннями можливі, коли до змінної
застосовується операція порівняння, а змінна може бути як числом так і null /
29