道歉,如果这是一个骗局,我只看到or ||
比较。
如果我想根据单个条件设置一个变量的值,b
将始终求值为true
(不是0,null,undefined),为什么我要使用三元运算符{{ 1}}超过逻辑a?b:c
?它们似乎都执行精确相同的功能,尽管对jsperf的测试显示后者稍微快一些。
如果一个非常相似的操作和语法在同一个任务中胜过它,那么三元运算符的目的是什么?更奇怪的是,做什么让它变得更慢?
答案 0 :(得分:4)
如果您想有条件地将值设置为0
或某些非零值,该怎么办?
var x = condition() && 0 || 1;
这不起作用,因为0
是假的。
var x = condition() ? 0 : 1;
将起作用,因为评估不依赖于强制布尔值。