作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 JavaScript 中,是否可以在 Or 运算符之后放置条件语句?如果是这样,为什么以下对我来说失败了?
var value = 1 || true ? 2 : 3; // equals to 2
当我将值设置为等于 [1 ||真的 ? 2 : 3]
,我得到了意想不到的结果。得到的结果是:
value == 2
我期望值等于 1 (value= = 1
),因为 1 是真值,而 Or 语句应该返回 1。条件语句甚至不应该是执行。
val 可以等于 2 (val == 2
) 的唯一方法是 Or 运算符的行为不符合预期,并运行 Or 语句的第二部分和条件语句就在里面。
为什么会这样?
最佳答案
I've expected value to be equals to 1 (value = 1), since 1 is truthy
为此,您需要 parent :
var value = 1 || (true ? 2 : 3);
// --------------^------------^
如果没有它们,||
介于 1
和 true
之间,然后条件运算符的第一个操作数就是它的结果(是 1
)。
这是因为||
的优先级高于条件运算符(just); here's a table on MDN .
关于javascript - JavaScript 中 Or 运算符后的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41683768/
我是一名优秀的程序员,十分优秀!