Javascript logical operators and results

前端 未结 2 1333
星月不相逢
星月不相逢 2021-02-11 04:20

I know that the result of logical operations in most of the languages is either true, false or 1,0. In Javascript I tried the following:

alert(6||5)  // => re         


        
相关标签:
2条回答
  • 2021-02-11 04:32

    Since javascript is not a typed languaged any object can be used on logical operators, if this object is null, a false boolean, an empty string, a 0 or an undefined variable then it acts like a false if it's anything else then it is like a true

    At the end of the logical operation the last checked value returns.

    So

    6||2

    Check first value -> "6"
    6 = true
    Go to next value -> "2"
    2 = true
    

    End of operation, return last value. 2 which would work the same as true if passed to another logical operation.

    Edit: that was a wrong statement. 6||2 returns 6 because 6 acting as true is enough to know the condition OR is true without the need to check the next value.

    It is really the same way as in

    true||true

    Check first value -> "true"
    Check next value -> "true"
    return last value -> "true"
    

    And for 6 && 0 && 2

    First value 6 = true
    Next value 0 = false
    

    Stop operation here and returns the last checked value: 0.

    The | operator is a whole different thing, it simply peforms a logical OR on the bits of the input values, as explaned on the other answer by akp.

    0 讨论(0)
  • 2021-02-11 04:41

    Actually what you have derived are the pure digital results...like...

       3 in binary is 011......
       4 in binary is 100.....
    
       when u perform 3|4......
    
       it is equivalent to 011|100......i.e the OR operator which is the one of the bases of all logical operations
    
           011
           100
    
       will give 111 ie 7.............
    
       so u will get 3|4  as 7......
    
       hope u understand..
    
    0 讨论(0)
提交回复
热议问题