【发布时间】:2019-05-19 01:34:36
【问题描述】:
经过一番研究,我找不到这个问题的答案。
鉴于此:
'Hello' || true ? true : false
结果是true,这对我来说没有意义。因为第一个值是真实的,我希望它的结果是'Hello',并跳过三进制。但是,它的作用是使用三元的结果。
这是为什么呢?
【问题讨论】:
-
与
if('Hello' || true) echo true;相同条件为true,所以输出为“真” -
"I would expect the result of this to be 'Hello'"为什么? -
此处的运算符优先级...jsfiddle.net/briosheje/ys7zbn3x 您可能期望三元运算符优先于
||,但事实并非如此。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
'Hello' || (true ? true : false)将满足您的期望。或更短:'Hello' || true。甚至更短:'Hello'.
标签: javascript logical-operators ternary-operator