在接受用户输入的 JavaScript 中防止除以 0 的最佳方法是什么? 如果没有特定的方法来实现这一点,处理这种情况的最佳方法是什么,以免阻止其他脚本的执行?
非常感谢任何见解。
最佳答案
使用普通的 /
和 /=
运算符无法做到这一点。
做你想做的事情的最好方法是使用守卫:
function notZero(n) {
n = +n; // Coerce to number.
if (!n) { // Matches +0, -0, NaN
throw new Error('Invalid dividend ' + n);
}
return n;
}
然后进行除法
numerator / notZero(denominator)
或者你可以随时保护输出
function dividend(numerator, denominator) {
var quotient = numerator / denominator;
if (quotient !== quotient) { throw new Error(numerator + " / " + denominator); }
return quotient;
}
但这会失去 /=
的可读性和表现力。
关于javascript - 在javascript中防止/处理除以0的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8072323/