Can I use chained comparison operator syntax?

后端 未结 6 2124
醉话见心
醉话见心 2020-12-19 17:30

In one JS library I saw such syntax:

if (val > 5 == t) { ... }

I tested this in console:

1 == 1 == 2 // false
2 > 1 =         


        
6条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-19 18:03

    Javascript does not support the chained comparison syntax used in mathematics:

    1 < 2 < 3 // 1 is less than 2 which is less than 3.
    

    Instead, it evaluates each comparison left to right, which can sometimes yield the same results as mathematical chained comparison, as do all your examples, but the process is different:

    1 < 2 < 3 // "1 is less than 2" is true, true is 1, "1 is less than 3" is true.
              // Javascript returns true.
    

    3 < 2 < 1 // "3 is less than 2" is false, false is 0, "0 is less than 1" is true.
              // Javascript returns true.
    

    For this reason, it should be discouraged.

    To answer your question, however, yes it can be used.

提交回复
热议问题