【发布时间】:2021-04-27 20:59:51
【问题描述】:
我知道以前有人问过这个问题,但我似乎找不到合适的关键字来找到我的答案。
在javascript中,你可以这样做
console.log(true && "hello world"); // prints hello world
console.log(false && "hello world"); // prints false
这种行为叫什么?如果整个表达式的计算结果为 true,javascript 将在哪里输出变量的内容?
【问题讨论】:
-
我不知道它有没有名字,事情就是这样。这有点像短路
-
@CertainPerformance “短路”确实是它的名字!
-
其他语言短路了,但是 JavaScript 的 evaluating 作为布尔值然后 resulting 在预强制实际值中的行为是不寻常的。我从未见过有名字的行为。
-
@Pointy - 这在 MDN 上非常明确:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… - 并且在规范中(准确地说明了您在 short-circuit semantics 定义下方所说的内容)
-
尝试搜索“真值”和“假值”
标签: javascript boolean