【问题标题】:why the value of console.log(1 && 2) is 2 instead of true or 1 in javascript? [duplicate]为什么console.log(1 && 2) 的值是2 而不是javascript 中的true 或1? [复制]
【发布时间】:2018-08-30 17:15:59
【问题描述】:

我检查了许多测试用例。它正在查看第一个值是否为真并返回第二个值。

例子:

2 && 5 // --> 5
5 && 10 // --> 10
0 && 2 // --> 0

为什么它不返回 True 或 1?

【问题讨论】:

  • Java != JavaScript
  • Logan 我批准了您删除标签的更改。
  • @CodyG。刚看到。谢谢!
  • 1 && 2 返回值1 如果1可以强制转换成false;否则,它返回2。

标签: javascript


【解决方案1】:

每https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Description,

运算符:逻辑与 (&&)

用法:expr1 && expr2

如果可以转换为false则返回expr1;否则,返回 expr2。因此,当与布尔值一起使用时,如果两个操作数都为真,则 && 返回真;否则,返回 false。

【讨论】:

  • 打败我!为了帮助人们理解Logical operators are typically used with Boolean (logical) values. When they are, they return a Boolean value. However, the && and || operators actually return the value of one of the specified operands, so if these operators are used with non-Boolean values, they may return a non-Boolean value,这里还有另一种说法
  • 难道我们不应该关闭重复项而不是回答它们吗?
  • @raina77ow 一旦它被标记为重复,你实际上无法回答,但如果你没有注意到它是重复的并且在此之前回答,那真的不是任何人的错。
【解决方案2】:

如果所有其他值都是真值,则 && 运算符将返回最后一个值,否则将返回第一个非真值。所以,就像在0 && 2 中一样,0 是不真实的,它会被返回。

【讨论】:

  • 只是为了好玩,另外两种表达方式:1)&& 如果它是虚假的,则返回左侧,否则返回右侧。 2) 布尔运算符返回确定整体结果的第一个操作数(
猜你喜欢
  • 2011-12-04
  • 2013-01-09
  • 1970-01-01
  • 2019-01-09
  • 2013-06-26
  • 2011-05-12
  • 1970-01-01
  • 2020-03-14
  • 2014-07-04
相关资源
最近更新 更多