有没有& Javascript中的逻辑运算符

时间:2010-07-30 19:40:19

标签: javascript

我想知道是否有“&” Javascript中的逻辑运算符。我试过跑1& 0和1&&在Firebug(Firefox)中为0,两者都返回0。

有人告诉我C#接受& amp;和double&&,double更高效,因为一遇到false就会退出比较循环,但我无法在其上找到Javascript的任何信息。

有什么想法吗?

8 个答案:

答案 0 :(得分:10)

没有。 &bitwise AND运营商。 &&是Javascript中唯一的逻辑AND运算符。

答案 1 :(得分:5)

&&运算符为表达式0返回1 && 0,因为它的语义与其他类C语言中的相同运算符(好像,符号相同)的语义不同。 / p>

在Javascript中,&&运算符 将其操作数强制转换为布尔值,但用于评估。表达式

的结果
e1 && e2 && e3 ...

是第一个子表达式 en 实际值,其强制布尔值为false。如果强制转换为布尔值时全部为true,则结果为最后 en 实际值。同样,||运算符会解释如下表达式:

e1 || e2 || e3 ...

返回其强制布尔值为en的第一个 true 实际值。如果它们都是假的,那么该值就是最后一个值的实际值。

这些描述中隐含的事实是&&||一旦满足完成条件就停止评估子表达式。

答案 2 :(得分:2)

1& 0为0。

这是一个按位运算符,而不是逻辑运算符。

&安培;&安培;表示左右运算符的逻辑AND。这意味着只有当左侧和右侧运算符都解析为布尔值true时,它才会返回布尔值true。

&安培;表示左右运算符的按位AND。这意味着将比较每个操作数的位,结果将是ANDed值,而不是布尔值。如果您执行101 & 100,则返回值为100。如果您执行1 & 0,则返回值为0

如果有人告诉你差异只是效率,那你就误导了两家运营商的意思。它们的用途非常不同。

答案 3 :(得分:1)

是。 Javascript都有。 http://www.eecs.umich.edu/~bartlett/jsops.html

与C#完全一样,双&&版本可以在遇到错误时立即停止,并且单个&版本可能没有。

答案 4 :(得分:1)

你的朋友对C#有误。

C#不会混合逻辑和按位运算符,因此您无法使用&在哪里&&需要,反之亦然。

1& 0返回0

true&& false返回false

因此,如果您正在编写一个需要布尔值的if语句,则必须使用&&amp ;.如果你正在做逐位算术,那么你需要&。

答案 5 :(得分:1)

您可以在javascript中按位检查它:

https://www.w3schools.com/js/js_bitwise.asp

&is如果每个位均为1,则将每个位设置为1

示例: 5&1 = 1

0101&0001 = 0001

答案 6 :(得分:0)

&安培;&安培;是Javascript中的逻辑运算符。 1&& 0应返回false,以便正确执行。

答案 7 :(得分:0)

Javascript具有按位(&)和布尔(&&)运算符。原因&&在1&&上返回0 0是因为0表示假,因此1(真)&& 0(false)返回false,因为两个运算符必须求值为true才能返回true