function ord(n) {
  var sfx = ["th","st","nd","rd"];
  var val = n%100;
  return n + (sfx[(val-20)%10] || sfx[val] || sfx[0]);
}

末尾的部分((sfx [(val-20)%10] || sfx [val] || sfx [0]);这种评估在javascript中是否有特定名称?有人可以告诉我这是什么,以便我可以学习如何使用它们,以弄清楚这段代码是如何工作的。

谢谢

最佳答案

这只是一系列Logical OR operators。但是,由于这些运算符是short-circuited且不强制 bool(boolean) 强制,因此它们可用于“默认值”或“替代”,因为它们将返回第一个真实值(除了undefinednullNaN0"",或false):

console.log(1 || 2 || 3); // 1
console.log(0 || 2 || 3); // 2
console.log(0 || 0 || 3); // 3

或最后一个虚假的值,如果没有一个是真实的:
console.log(false || 0 || null); // null
return n + (sfx[(val-20)%10] || sfx[val] || sfx[0]);行可以延长为:
if (sfx[(val-20)%10]) {
    return n + sfx[(val-20)%10];
} else if (sfx[val]) {
    return n + sfx[val];
} else {
    return n + sfx[0];
}

关于javascript - 用Java语言调用这种评估是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9354623/

10-17 02:57