JavaScript triple equals and three-variable comparison

前端 未结 2 1324
我寻月下人不归
我寻月下人不归 2020-12-21 05:29

Can somebody explain this?

1 == 1        //true, as expected
1 === 1       //true, as expected
1 == 1 == 1   //true, as expected
1 == 1 == 2   //false, as ex         


        
相关标签:
2条回答
  • 2020-12-21 05:54

    Equality is a left-to-right precedence operation.

    So:

    1 == 1 == 1
    true == 1
    true
    

    And:

    1 === 1 === 1
    true === 1
    false // because triple-equals checks type as well
    
    0 讨论(0)
  • 2020-12-21 05:57

    This expression:

    1 === 1 === 1
    

    Is evaluated as:

    (1 === 1) === 1
    

    After evaluating the expression inside parentheses:

    true === 1
    

    And that expression is logically false. The below expression returns true as expected though:

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