有多少个问号?和冒号"; "在一个语句解释在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是右结合的,所以你从右到左"解析"三元。
首先,
永远不要这样做。永远。为了补充泰勒的(正确)答案,如果你无法抗拒诱惑,那么使用缩进对事物进行分组是更可取的(对于"更可取"的某些定义)。
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相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 自动修复”;语句前缺少分号“;
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- 如何在 API 调用后和 if 语句中启用提交按钮
- 是“;x==a||b”;以及“;x==a||x==b”;JavaScript中的等效语句
- //而不是在src=“”上使用http://"属性
- JSP<a href="">无法保存常规语句
- 为什么我的JS"如果“;语句的求值结果总是为false
- Javascript/HTML”;错误”:"请使用POST请求“;将下拉选择与case/switch语句一起使
- "返回函数外的语句“-JavaScript错误
- 如何使用“>"AngularJS ng-if语句中的比较器
- 什么是“||"在var语句中是mean
- 闭包编译器:避免"缺少返回语句”;保证退货时发出警告
- "哎呀!错误是无法准备语句(1接近“当”语法错误)(代码5);
- 如何创建语句if包含"&"