Greater than operator given wrong response inside console.log in javascript

前端 未结 2 1252
予麋鹿
予麋鹿 2021-01-27 08:11

I have tried conditional operator inside console.log(). Less than < returns correct response but greater than > returns wrong respon

相关标签:
2条回答
  • 2021-01-27 08:20

    The lower than and greater than operators are evaluated from left to right (see Operator precedence):

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

    The boolean values (false/true) are converted to integers (0/1) here. ("If one of the operands is Boolean, the Boolean operand is converted to 1 if it is true and +0 if it is false." (source: MDN))

    0 讨论(0)
  • 2021-01-27 08:42

    The < operator accepts two operands and yields a boolean result. Your code is effectively:

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

    The reason temp > 5 is false is that true > 5 coerces true to a number (1), and 1 > 5 is false.

    Insead, use && if you want a logical AND condition:

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

    0 讨论(0)
提交回复
热议问题