Проблема с JavaScript операторов сравнения: использование 2 операторов последовательно: почему в JavaScript (12> 11 && 11> = 10) не равно (12> 11> = 10) - PullRequest
0 голосов
/ 06 августа 2020

как обычная математика, я попытался зарегистрировать этот код в консоли, и я ожидал получить значение true

 console.log(12>11>=10)

, но то, что я получил, было false, однако, когда я попытался войти console.log(12>11&&11>=10) Я получил true, поэтому в последний раз я попробовал console.log( (12>11&&11>=10) == (12>11>=10) ) и получил flase

, поэтому мой вопрос:

почему в javascript (12> 11 && 11> = 10) не равно (12> 11> = 10)?!

и я надеюсь, что любой может помочь

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Поскольку привязки операторов> и> = одинаковы, это обрабатывается как:

(12>10)>=10

Что означает:

true>=10

И это false.

0 голосов
/ 06 августа 2020

Потому что синтаксис языка программирования и человеческая интуиция - это очень разные вещи. Ни в коем случае язык не будет «знать, что вы имеете в виду», вы должны быть полностью ясными и недвусмысленными.

У вас есть две операции. Один использует оператор >, а другой - оператор >=. Операции - это atomi c вещи. Произойдет одно, затем другое.

Итак, это:

12 > 11

Результат:

true

А затем это:

true >= 10

Результат:

false

Используйте меньше интуиции и больше logi c. Разделите свои две операции:

12 > 11
11 >= 10

И объедините их логически:

(12 > 11) && (11 >= 10)

Что даст результат:

true && true

Что даст:

true
...