Javascript三元逻辑问题

时间:2018-01-08 17:57:19

标签: javascript ternary-operator

我最近遇到了这种形式的三元逻辑陈述:

condition, condition ? condition ? expr1 : expr2 : expr3

我不确定如何解释这一点。我没有在网上看到任何东西。任何人都有这方面的任何信息。

2 个答案:

答案 0 :(得分:2)

condition, condition ? condition ? expr1 : expr2 : expr3

首先你有一个逗号运算符。这评估为右侧。所以第一个条件什么也没做。

condition ? condition ? expr1 : expr2 : expr3

然后你只有两个三元表达式

与以下内容相同:

condition ? (condition ? expr1 : expr2) : expr3

因此,如果第一个条件为false,则会得到expr3。

否则,第二个条件在expr1和expr2之间选择。

永远不要写这样的代码!简洁只是一种美德,它使得很难理解代码的含义。

答案 1 :(得分:1)

我们试试:))

condition1, condition2 ? condition3 ? expr1 : expr2 : expr3

condition1不解析。我们以'return'为例。

if( condition2 ){
  if(condition3){ 
      return exp1;
  } else { 
      return expr2;
  }
} else {
  return expr3;
}