Больше, чем оператор дал неправильный ответ внутри console.log в JavaScript - PullRequest
0 голосов
/ 06 октября 2018

Я попробовал условный оператор внутри console.log().Меньше < возвращает правильный ответ, но больше > возвращает неправильный ответ.Почему?

    console.log(5<6<7);
    //Output: true

    console.log(7>6>5);
    //output: false

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Операторы ниже и выше оцениваются слева направо (см. Приоритет оператора ):

5 < 6 < 7 = (5 < 6) < 7 = true < 7 = 1 < 7 = true

7 > 6 > 5 = (7 > 6) > 5 = true > 5 = 1 > 5 = false

Логические значения (false / true) преобразуются в целые числа (0/1) здесь.(«Если один из операндов является логическим, то логический операнд преобразуется в 1, если он истинный, и в +0, если он ложный.» ( source: MDN ))

0 голосов
/ 06 октября 2018

Оператор < принимает два операнда и выдает логический результат.Ваш код эффективен:

let temp = 7 > 6;
console.log(temp);      // true
let result = temp > 5;
console.log(result);    // false

Причина temp > 5 в false заключается в том, что true > 5 приводит true к числу (1), а 1 > 5 - ложь.

Insead, используйте &&, если вы хотите логическое условие И:

console.log(7 > 6 && 6 > 5); // true
...