1. ternary operator (Question mark: " ? ")
实际上 (condition) ? expT : expF
可以看成是 if (condition) expT; else expF;
的shortcut.
1.1 一个好用的用法:
function greeting(person)
{
var name= person ? person.name : "stranger";
console.log("Hello, "+ name);
}
greeting({name: Alice}); // Hello, Alice
greeting(null);// Hello, stranger
1.2 chained question mark:
function example(…) {
return condition1 ? value1
: condition2 ? value2
: condition3 ? value3
: value4;
}
不建议chained question mark(multiple ?)是因为这样的写法代码的可读性很差,人们看代码总是倾向于垂直看,所以chained question mark尽量采用多行if...else
来代替。
// Equivalent to:
function example(…) {
if (condition1) { return value1; }
else if (condition2) { return value2; }
else if (condition3) { return value3; }
else { return value4; }
}
网友评论