从以下JavaScript返回2
的逻辑是什么?
true ? false ? '1' : '2' : '3'
答案 0 :(得分:1)
查找运算符precedence。
由于三元运算符右 - 关联,上述表达式将被解析为:
true ? (false ? '1' : '2') : '3'
Right - to - left associativity 表示最先执行最右边的操作员。
在我们的例子中,最右边的三元运算符是内部运算符,因此首先执行。
答案 1 :(得分:0)
这样想:
true ? false
false ? '1'
: '2'
true ? (false ? '1' : '2') : '3'
。因此,如果您将第一个true
转换为false
,则应返回3. 希望有帮助......如果你还是不明白,请问!
答案 2 :(得分:0)
只是在这里添加,这就是表达式如何用if-else
语句翻译
// Translated:
if (true) {
if (false) {
console.log(1)
}
else {
console.log(2)
}
} else {
console.log(3)
}
答案 3 :(得分:0)
?:是ternary operator。
所以你的代码:
var x = true ? false ? '1' : '2' : '3'
是简写版:
var x;
if(true){
if(false){
x = '1';
}else{
x = '2'; // <= You will be here.
}
}else {
x = 3;
}