不要将其视为控制块(即:if-else 或开关)。它并不是真正用于在其中运行代码。
你可以。它变得非常丑陋,非常快,这违背了目的。
您真正想要使用它的是ASSIGNING VALUES。
以你最初的例子为例,稍微改变一下,你会得到:
direction = (this.dragHandle.hasClass("handle-low")) ? "left" : "right";
看。现在我所做的是我已经采取了一些需要 if/else 或 switch 的东西,这将被用来分配给那个值,我已经把它清理得很好很漂亮。
你甚至可以做一个 else-if 类型的三元:
y = (x === 2) ? 1 : (x === 3) ? 2 : (x === 4) ? 7 : 1000;
如果您愿意,您也可以使用它来触发代码,但是一段时间后就很难知道发生了什么(请参阅前面的示例,看看即使分配如何开始看起来很奇怪)...
((this.dragHandle.hasClass("...")) ? fireMe(something) : noMe(somethingElse));
...这通常会起作用。
但它并没有比 if 或分支、立即调用函数更漂亮或更有用(非 JS 程序员或未经训练的 JS 程序员会为了维护你的代码而自欺欺人)。