3 javascript ternary-operator logical-operators
抱歉,这是一个骗子,我只看到了一个or ||比较。
如果我想基于一个条件设置一个变量的值,那么在哪里b总是计算为true(不是0,null,undefined),为什么a?b:c在逻辑上使用三元运算符a&&b||c呢?它们都似乎执行完全相同的功能,尽管对jsperf的测试表明后者的速度稍快。
如果非常相似的操作和语法在同一任务上胜过三元运算符,那么它的目的是什么?更奇怪的是,它做什么使它变慢?
如果要有条件地将值设置为某个值0或某个非零值怎么办?
var x = condition() && 0 || 1;
Run Code Online (Sandbox Code Playgroud)
那0是行不通的,因为是虚假的。
var x = condition() ? 0 : 1;
Run Code Online (Sandbox Code Playgroud)
将起作用,因为评估不依赖于强制的布尔值。