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) 强制,因此它们可用于“默认值”或“替代”,因为它们将返回第一个真实值(除了undefined
,null
,NaN
,0
,""
,或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/