怎么多个问号“?”和冒号“:”在一个语句中解释为 javascript? (条件运算符)

How multiple question marks "?" and colons ":" in one statement are interpreted in javascript? (Conditional Operators)

我知道条件语句的解释是多么简单,比如

condition ? expr1 : expr2 

但我想知道这样的说法是如何解读的?

function arc() {
    ...
    return da >= d3_svg_arcMax ? r0 ? "String1" : "String2" : r0 ? "String3" : "String4";
}

这么长的表达式不用解释了。我只需要知道在这个例子中同时使用多个问号和冒号是什么意思。

谢谢

Javascript 是右结合的,所以你 'resolve' 从右到左的三元组。

首先,

永远不要这样做。曾经。要添加到泰勒的(正确的)答案中,如果您无法抗拒警笛声,那么最好使用缩进对事物进行分组(对于 'preferable' 的某些定义)。

var foo = a ?
  b:
  c ?
    d:
    e;

这使得 一点点 更容易看出如果 a 是真实的,foo 将是 b,如果 [=14] 是 d =] 为真,否则 e

在这里我找到了一个很好的答案来解决我的问题:

http://www.codeproject.com/Questions/1117764/Where-do-you-put-parentheses-in-the-following-java