Почему (0 <5 <3) возвращает true? - PullRequest
343 голосов
/ 03 ноября 2010

Я играл на jsfiddle.net, и мне интересно, почему это возвращает true?

if(0 < 5 < 3) {
    alert("True");
}

Так же это:

if(0 < 5 < 2) {
    alert("True");
}

Но это не так:

if(0 < 5 < 1) {
    alert("True");
}

Является ли эта причуда когда-нибудь полезной?

Ответы [ 13 ]

3 голосов
/ 09 ноября 2010
0 < 5 < 3 
==> ( ( 0 < 5 ) < 3 )
==> true < 3
==> 1 < 3
==> true
1 голос
/ 06 декабря 2011

Логический операнд при работе с математическим оператором возвращает число.чтобы проверить это, мы делаем

true + 1  which gives you 2.

Так что 0 < 5, возвращенное логическое (true), оперируемое с математическим оператором (<), вернет число.Таким образом, это сводится к 1 <3, который возвращает <code>true

0 голосов
/ 30 июля 2018

, поскольку 0 меньше 5, то это возвращает true, и по умолчанию true - все, что включает, и может быть оценено как 1, которое все еще меньше 3, что снова возвращает true

...