[英]Javascript logical operators and results
我知道大多数语言中逻辑运算的结果是true,false或1,0。 在Javascript中我尝试了以下内容:
alert(6||5) // => returns 6
alert(5||6) // => returns 5
alert(0||5) // => returns 5
alert(5||0) // => returns 5
alert(5||1) // => returns 5
alert(1||5) // => returns 1
alert(5&&6) // => returns 6
alert(6&&5) // => returns 5
alert(0&&5) // => returns 0
alert(5&&0) // => returns 0
alert(-1&&5) // => returns 5
alert(5&&-1) // => returns -1
那么逻辑运算符的结果是什么? 如果一个操作数为0或1,则它按预期工作。 如果两者都非零而不是1
or
情况下,返回第一个操作数 and
情况下,返回第二个操作数 这是一般规则吗?
我不知道的另一件事是操作员|
。
我试过运算符|
得到了不同的结果:
alert(5|8) // => returns 13
alert(8|5) // => returns 13
alert(-5|8) // => returs -5
alert(8|-5) // => returns -5
alert(0|1) // => returns 1
alert(1|0) // => returns 1
alert(1|1) // => returns 1
这个运营商实际上做了什么?
由于javascript不是类型化的语言,因此任何对象都可以在逻辑运算符上使用,如果此对象为null,则为false boolean,空字符串,0或未定义的变量,如果它是其他任何内容,则它就像false
一样然后它就像一个true
在逻辑运算结束时,返回最后一个检查值。
所以
6 || 2
Check first value -> "6"
6 = true
Go to next value -> "2"
2 = true
操作结束,返回最后一个值。
2如果传递给另一个逻辑操作,它将与true相同。
编辑:那是一个错误的陈述。 6||2
返回6
因为6
作为true
就足以知道条件OR
是真的而无需检查下一个值。
它实际上和中国一样
真真正||
Check first value -> "true"
Check next value -> "true"
return last value -> "true"
对于6 && 0 && 2
First value 6 = true
Next value 0 = false
在此处停止操作并返回上次检查的值:0。
| 运算符是一个完全不同的东西,它简单地对输入值的位进行逻辑或运算,正如akp在另一个答案中所解释的那样。
实际上你得到的是纯粹的数字结果......就像......
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..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.