【发布时间】:2014-03-18 08:52:27
【问题描述】:
抱歉,如果这是一个骗局,我只看到了 or || 的比较。
如果我想根据单个条件设置一个变量的值,其中b 将始终评估为true(不是 0、null、未定义),为什么我要使用三元运算符 a?b:c 而不是逻辑a&&b||c?它们似乎都执行完全相同相同的功能,尽管对 jsperf 的测试显示后者稍快。
如果一个非常相似的操作和语法在相同的任务中胜过它,那么三元运算符的目的是什么?更奇怪的是,它做什么 让它变慢了?
【问题讨论】:
-
他们不一样。检查
1 ? 0 : 2与1 && 0 || 2。 -
确实如此,也许我应该澄清一下,在更常见的情况下,两个值都评估为 true。
标签: javascript ternary-operator logical-operators