javascript - 在javascript中防止/处理除以0的最佳方法

标签 javascript divide-by-zero

在接受用户输入的 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/

相关文章:

javascript - 字体大小根据字数变化

javascript - 如何防止 jquery 可调整大小的 div 接收调整大小点击事件

javascript - 无效值错误: myMap is not a function

javascript - 打开站点时如何查看 javascript 正在逐步执行的操作?

java - 我应该如何在Java中抛出除以零异常而不实际除以零?

sql-server - 外部 WHERE 子句如何影响嵌套查询的执行方式?

c++ - 规范化时避免奇怪的单应性值

javascript - 获取 Array.toString() 的结果,而不用逗号分隔项目

java - 为什么Java除以0.0时不抛出异常?

ruby-on-rails - 如何在 Ruby 中对字符串应用除法运算符?