有a&;Javascript中的逻辑运算符
我想知道Javascript中是否有一个“&”逻辑运算符。我尝试在Firebug(Firefox)中运行1&0和1&0,但它都返回了0 有人告诉我C#同时接受&和double&,double更有效,因为一旦遇到false,它就会退出比较循环,但我找不到关于这方面的任何Javascript信息有a&;Javascript中的逻辑运算符,javascript,Javascript,我想知道Javascript中是否有一个“&”逻辑运算符。我尝试在Firebug(Firefox)中运行1&0和1&0,但它都返回了0 有人告诉我C#同时接受&和double&,double更有效,因为一旦遇到false,它就会退出比较循环,但我找不到关于这方面的任何Javascript信息 有什么想法吗?没有。&是操作员&是Javascript中唯一的逻辑AND运算符。否。&是运算符&&是Javascript中唯一的逻辑AND运算符。是。Javascript兼有这两种功能 与C#中的情况完全一
有什么想法吗?没有。
&
是操作员&
是Javascript中唯一的逻辑AND运算符。否。&
是运算符&&
是Javascript中唯一的逻辑AND运算符。是。Javascript兼有这两种功能
与C#中的情况完全一样,双版本和(&V)在遇到false时可以立即停止,而单版本和(&V)可能不会停止。是。Javascript兼有这两种功能
与C#中的情况完全一样,双版本&&version可以在遇到false时立即停止,而单版本&&version可能不会停止。&&是Javascript中的逻辑运算符。1&&0应返回false,以便正确执行 &&是Javascript中的逻辑运算符。1&&0应返回false,以便正确执行 1&0等于0 它是位运算符,不是逻辑运算符 &&表示左右运算符的逻辑AND。这意味着只有当左操作符和右操作符都解析为布尔真时,它才会返回布尔真值 &表示左右运算符的按位AND。这意味着将比较每个操作数的位,结果将是and值,而不是布尔值。如果执行
101&100
操作,则返回值为100
。如果执行1&0
,则返回值为0
如果有人告诉你这两个操作符的区别仅仅在于效率,那么你就被误导了。它们有非常不同的用途。1&0是0
它是位运算符,不是逻辑运算符
&&表示左右运算符的逻辑AND。这意味着只有当左操作符和右操作符都解析为布尔真时,它才会返回布尔真值
&表示左右运算符的按位AND。这意味着将比较每个操作数的位,结果将是and值,而不是布尔值。如果执行101&100
操作,则返回值为100
。如果执行1&0
,则返回值为0
如果有人告诉你这两个操作符的区别仅仅在于效率,那么你就被误导了。它们有非常不同的用途。Javascript有按位(&)和布尔(&&)运算符。在1&&0上&&0返回0的原因是0将指示false,因此1(true)和&0(false)返回false,因为两个运算符都必须求值为true才能返回trueJavascript具有按位(&)和布尔(&&)运算符。在1&&0上返回0的原因是0表示false,因此1(true)和&0(false)返回false,因为两个运算符必须求值为true才能返回true表达式
1&&0
的运算符返回0
,因为其语义不同于同一运算符的语义(好的,符号上是一样的)在其他类似C语言中
在Javascript中,&&
运算符将其操作数强制为布尔值,但仅用于求值
e1 && e2 && e3 ...
是第一个子表达式en
的actual值,其强制布尔值为false
。如果强制为布尔值时它们都是true
,则结果是最后一个en
的actual值。类似地,|
运算符解释如下表达式:
e1 || e2 || e3 ...
通过返回强制布尔值为true
的第一个en
的actual值。如果它们都为false,则该值为最后一个actual值
这些描述中隐含的事实是,&&
和|
一旦满足子表达式的完成条件,就停止对其求值。由于其语义不同于同一运算符的语义,因此&&
运算符返回表达式1&&0
的0
(好的,符号上是一样的)在其他类似C语言中
在Javascript中,&&
运算符将其操作数强制为布尔值,但仅用于求值
e1 && e2 && e3 ...
是第一个子表达式en
的actual值,其强制布尔值为false
。如果强制为布尔值时它们都是true
,则结果是最后一个en
的actual值。类似地,|
运算符解释如下表达式:
e1 || e2 || e3 ...
通过返回强制布尔值为true
的第一个en
的actual值。如果它们都为false,则该值为最后一个actual值
这些描述中隐含的一个事实是,&&
和|
一旦满足子表达式的完成条件,就停止计算它们。您的朋友对C的看法是错误的
C#不混合逻辑运算符和位运算符,因此不能使用&where&&或反之亦然
1&0返回0
true&&false返回false
所以,如果你在写一个if语句,它需要一个布尔值,你必须使用&。如果你在做位运算,那么你需要&。你的朋友对C的看法是错误的
C#不混合逻辑运算符和位运算符,因此不能使用&where&&或反之亦然
1&0返回0
true&&false返回false
所以如果你