You don't know js(up & going)


Download 424.95 Kb.
Pdf ko'rish
bet30/53
Sana08.11.2023
Hajmi424.95 Kb.
#1757840
1   ...   26   27   28   29   30   31   32   33   ...   53
Bog'liq
You don\'t know JS(up & going)

_____________________________________________________________
var a = 1,2,3 ;
var b = 1,2,3 ;
var c = "1,2,3";
a == c;
// true
b == c;
// true
a == b;
// false
_____________________________________________________________
**Примечание:** Детальную информацию о правилах сравнения равенства `==`
можно посмотреть в спецификации ES5 (раздел 11.9.3 а также свериться с
главой 4 книги *Типы и синтаксис* этой серии; см. главу 2 для детальной
информации о значениях в сравнении с ссылками.
Неравенство


Операции `<`, `>`, `<=` и `>=`, использующиеся для неравенств, упоминаются в
спецификации как "относительное сравнение." Обычно они используются со
значениями, сравниваемыми порядками, как `числа`. Легко понять, что `3 < 4`.
Но `строковые` значения в JavaScript тоже могут участвовать в неравенствах,
используя типичные алфавитные правила (`"bar" < "foo"`).
Как насчет приведения типов? Тут всё похоже на правила в сравнении `==` (хотя
и не совсем идентично! . Примечательно, что нет операций "строгого
неравенства", которые запрещали бы приведение таким же путем как и "строгое
равенство" `===`.
Пример:
_____________________________________________________________
var a = 41;
var b = "42";
var c = "43";
a < b;
// true
b < c;
// true
_____________________________________________________________
Что здесь происходит? В разделе 11.8.5 спецификации ES5 говорится, что, если
оба значения в сравнении `<` являются `строками`, как это было в случае с `b <
c`, то сравнение производится лексикографически (т.е. в алфавитном порядке,
как в словаре), но если одно или оба значения не являются `строками`, как в
случае с `a < b`, то оба значения приводятся к `числу`, и происходит типичное
числовое сравнение.
Самое большое затруднение, в которое вы можете попасть со сравнениями
между потенциально разными типами значений (помните, что нет формы
"строгого неравенства"? — это когда одно из значений не может быть
превращено в корректное число, например:

Download 424.95 Kb.

Do'stlaringiz bilan baham:
1   ...   26   27   28   29   30   31   32   33   ...   53




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling