任何数取余0,为什么结果为NaN;
10 % 0;
> NaN
感谢各位的解答,我觉得还是有些欠妥当。
都知道 任何数 /0
得到的是 Infinity
无穷大的,虽然 %0
的计算过程中也涉及除法运算,但是它的结果却是NaN
而不是 Infinity
;
本质上是有区别的,javascript指南中提到: 算术运算中使用了不恰当的的操作数,导致【运算失败】,该运算就会返回 NaN
。
然而 任何数 /0
返回的是 Infinity
,这代表的是运算是 【成功】 的。
所以我觉得最终返回的 NaN 还是有某个地方的运算是有问题的。
比如我们都知道 'a'/10
,结果是NaN
,因为一个字符,一个是数字,报错是理所当然的。但是 10%0
为何报错为NaN
?
这种问题你想知道结果,只能去看ECMAScript 标准,因为一个取模(余数)运算的定义里,小学生都知道被除数需要是非0,对于这种情况如何处理?当然是标准说怎么处理,就怎么处理
es7标准
找到关于 % opeartor的定义
equals the dividend.
看我加粗的那句话,这就不需要我翻译了吧。。