【发布时间】:2012-07-01 15:43:31
【问题描述】:
我知道大多数语言中的逻辑运算结果要么是真、假要么是 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 operators logical-operators