有多少个问号?和冒号"; "在一个语句解释在javascript?(条件操作符)

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

本文关键字:quot 语句 javascript 操作符 条件 一个 解释 多少      更新时间:2023-09-26

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

condition ? expr1 : expr2 

但是我想知道这样的语句是如何解释的?

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

不需要解释这个长表达式。我只需要知道当多个问号和冒号像这个例子一样一起使用时它是什么意思。

谢谢

Javascript是右结合的,所以你从右到左"解析"三元。

首先,

永远不要这样做。永远。为了补充泰勒的(正确)答案,如果你无法抗拒诱惑,那么使用缩进对事物进行分组是更可取的(对于"更可取"的某些定义)。

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

这使得稍微更容易看出,如果a为真foo将是b,如果c为真d,否则为e

我找到了一个很好的答案:

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