三元运算符多个问号多个冒号
三目运算符的规律
关于三目运算符我们常见常用的形式是:
var c = true?1 : 2 console.log(c); //1 var c = false?1: 2 console.log(c) //2
这个当判断条件为真返回1,判断条件为假返回2。
另一种形式:
1 var b = true ? true ? 1 : 2 : 3 2 console.log(b) // 1 3 var b = true ? false ? 1 : 2 : 3 4 console.log(b) // 2 5 var b = false ? false ? 1 : 2 : 3 6 console.log(b) // 3 7 var b = false ? true ? 1 : 2 : 3 8 console.log(b) // 3
这个为判断条件返回三个值的。
多个问号的形式:
1 var a = false ? true ? false ? 1 : 2 : 3 : 4 2 console.log(a) // 4 3 var a = false ? true ? true ? 1 : 2 : 3 : 4 4 console.log(a) // 4 5 var a = false ? false ? false ? 1 : 2 : 3 : 4 6 console.log(a) // 4 7 var a = false ? false ? true ? 1 : 2 : 3 : 4 8 console.log(a) // 4 9 var a = true ? true ? true ? 1 : 2 : 3 : 4 10 console.log(a) // 1 11 var a = true ? true ? false ? 1 : 2 : 3 : 4 12 console.log(a) //2 13 var a = true ? false ? false ? 1 : 2 : 3 : 4 14 console.log(a) // 3 15 var a = true ? false ? true ? 1 : 2 : 3 : 4 16 console.log(a) // 3
规律
1.如果第一个判断条件是false,那么不管剩下的是啥返回的都是最后一个值
2.如果第一个判断条件为true,那么再看第二个判断条件,如果第二个判断条件是false,那么无论后面的判断条件是啥都返回倒数第二个值
3.如果第一个第二个判断条件都是true,那么继续看第三个判断条件是false,那么一样不需要看后面的了直接返回倒数第三个值
4.如果判断条件全是true,直接返回第一个值。
总结:从前往后顺序看判断条件,当第一个false出现在n位,则这个三元运算符就返回倒数第n个值,全是true则返回第一个值。