无法使用 && 运算符查看正确的值

Unable to see the correct value by using && operator

本文关键字:amp 运算符      更新时间:2023-09-26

嗨,我正在准备JS面试。我看到了这个问题。

如果var a=2, var b =3 a&&b的价值是多少?给出的答案是3

我不明白为什么这是答案。你能帮忙吗..谢谢。

&

&和||不要创建真或假。它们返回其中一个操作数。

二进制运算符的行为与其他基于 c 的语言不同。在此处查看有关真值和假值的更多信息

<小时 />

&&定义如下。

如果第一个操作数为真,则结果是第二个操作数。否则它是第一个。

例子

false && true      // false the first operand is falsey
0 && true          // 0. 0 is a falsy value so the first value is used
1 && 0             // 0. The first value is truthy 
                   // so the second value is used
'hello' && 'world' // 'world' the first value is truthy 
                   // so yield the second value.

||定义如下。

如果第一个操作

数为真,则结果是第一个操作数。否则是第二个。

例子

false || true      // true, first value is falsey so yield second
0 || true          // true, first value is falsey so yield second
1 || 0             // 1, first value is truthy use it.
'hello' || 'world' // 'hello', first value is truthy so yield it.
<小时 />

&&||是"短路">

这意味着有一些方法可以构建代码,以便不计算所有表达式。这有时可能很方便,但也是双刃剑。

function launchNukes() { /* TODO */ }
0 && launchNukes(); // nukes do not fire
1 && launchNukes(); // nukes fire
0 || launchNukes(); // nukes fire
1 || launchNukes(); // nukes do not fire

&&是一个AND运算符,就像大多数其他地方一样。大多数语言(包括 JavaScript(如果第一个操作数为 false,将停止计算 AND 运算符。

你可以这样读:

  • 如果a为 true,则返回值将b
  • 如果a为假,则返回值将a

所以 && 返回操作数的值不是falsetrue

以你为例,

2 && 3 // return 3 because 2 is true