他山之石,可以攻玉——新知识点2

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; }
}

你可能感兴趣的:(他山之石,可以攻玉——新知识点2)