【问题标题】:How can I override the behavior of the division operator? [duplicate]如何覆盖除法运算符的行为? [复制]
【发布时间】:2014-06-12 05:54:16
【问题描述】:

在 JS 中除以 Infinity 时,如果除以零,我想通过返回 undefined 来改变这种行为,这样我就可以识别出真正的 Infinity 与错误结果。

假设编写下一行调用一些数学或内置函数进行除法:

var a = 6 / 0;
  1. “/”函数的全名/路径是什么?
  2. 有没有办法覆盖它(或任何其他操作数)?

锐化:

Infinity / 1 = Infinity(顶部无穷大是除以零的结果)而undefined / 1 = Nan。 是否有可能不编写和使用我自己的函数来确定计算过程中存在问题?

【问题讨论】:

  • 任何帮助 - stackoverflow.com/questions/4724555/how-do-i-check-if-a-number-evaluates-to-infinity ?
  • 你认为WTH是“真正的无限”吗?
  • 我现在明白 JavaScript 中现在有重载算术运算符。谢谢。

标签: javascript overwrite operand


【解决方案1】:

/ 在 JavaScript 中不是一个函数,它是一个运算符,所以你不能覆盖它。

但是,您可以编写一个函数来保护除法:

function divide (a, b) {
    return b === 0 ? undefined : a / b;
}

并像这样使用它:

var a = divide(6, 0);

【讨论】:

    【解决方案2】:

    这只是一个用于除法目的的算术运算符

    你不能覆盖它。但是,您可以使用 if else 块来检查 infinity 值,并将其更改为 undefined。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      • 2014-01-05
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      相关资源
      最近更新 更多