首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JavaScript中&和&&有什么区别?

在JavaScript中&和&&有什么区别?
EN

Stack Overflow用户
提问于 2011-09-05 23:35:03
回答 3查看 95.6K关注 0票数 95

在JavaScript中,&&&有什么不同?

示例代码:

代码语言:javascript
复制
var first  = 123;
var second = false;
var third  = 456;
var fourth = "abc";
var fifth  = true;
alert(first & second); // 0
alert(first & third);  // 72
alert(first & fourth); // 0
alert(first & fifth);  // 1

alert(first && second); // false
alert(first && third);  // 456
alert(first && fourth); // abc
alert(first && fifth);  // true

看起来&&是一个逻辑and,如果两者都是true,它总是给我第二个值。

但是什么是&呢?

(顺便说一下,在Python语言中,&&似乎是and;在Python语言中,&似乎是& )

EN

回答 3

Stack Overflow用户

发布于 2011-09-05 23:40:49

&是按位的"and“。这意味着,如果您将两个数字转换为二进制,则结果是一个在两个数字都具有1的位置上具有1数字的数字。

代码语言:javascript
复制
  100011  //35
& 111001  //57
---------
  100001  //35 & 57 == 33
票数 29
EN

Stack Overflow用户

发布于 2012-09-20 10:07:08

要确定放在一起的两个布尔值是真还是假,如果您想同时检查它们(如网页上的验证),您可以使用&运算符。&是按位AND的。

对于&&运算符,一旦它发现第一个值为假,它将结束求值,并且不检查第二个值。

票数 -3
EN

Stack Overflow用户

发布于 2019-06-01 13:24:01

在所有这些高尚而详细的见解中,他们大多忽略了一个事实,即只有单个&才能工作的条件评估。一个实用的外行的答案解决了我对多个链接&& each !==到一个条件的IF语句字符串的困惑,这导致了失败,并且需要合法地使用单个&。我感谢Jake (和Russ)不公平地否决了他们的答案,因为如果有不止一个&& ==,它已经停止了它的评估,并在找到第一个评估后不再继续进行==!。在第一次评估显示之后&&它认为它的工作已经完成了!==例如。假。我失败的代码是

代码语言:javascript
复制
IF ((sessionStorage.myLable !== "LableStringA") && (sessionStorage.myLable !== "LableStringB") && (sessionStorage.myLableZ !== "LableStringA") && (sessionStorage.myLableZ !== "LableStringB")) { ...)

在这里,正确地用一个&替换&&,这实际上是在现实世界中,从技术上讲也是正确的答案。再次感谢Jake (和Russ)对代码的洞察和理解。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7310109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档