Javascript : Strange behaviour `empty string` AND `false` returns empty string

标签 javascript

今天我遇到了 Javascript 中的奇怪行为。下面是代码

return "" && false

返回“”。

为什么会这样?

最佳答案

因为

The production LogicalANDExpression : LogicalANDExpression && BitwiseORExpression is evaluated as follows:

  1. Let lref be the result of evaluating LogicalANDExpression.
  2. Let lval be GetValue(lref).
  3. If ToBoolean(lval) is false, return lval.
  4. Let rref be the result of evaluating BitwiseORExpression.
  5. Return GetValue(rref).

ECMAScript 5.1

这意味着:

Return the first value if it is falsy, return the second value if the first is truthy.


这也是您这样做时看到的行为:

return false && true

你得到 false

这也意味着这

return 23 && "Hello"

会给你“你好”

关于Javascript : Strange behaviour `empty string` AND `false` returns empty string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31984087/

相关文章:

javascript - 如何从 javascript 中的数组中提取一个元素,然后使其成为一个全新的单元素数组?新

Drupal 中的 Javascript for() 循环不起作用?

javascript - 替换数据属性html

javascript - 从 React(同构应用程序)进行 API 调用时出现“Access-Control-Allow-Origin”问题

javascript - 迭代前内联检查数组是否存在

javascript - Node JS Socket IO 聊天问题

javascript - Jade 和 Connect-Assets 升级问题

javascript - 使用javascript从td(水平行标题)中选择兄弟th

javascript - 替换 json/jsObject/string 中的多个值

JavaScript GetDate 无法跨区域工作