为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript - 将“0”转换为数字

JavaScript - 将“0”转换为数字

蛊毒传说 2021-12-02 19:13:28
我能理解为什么10 % "test"返回NaN......因为“测试”首先被转换为一个数字NaN,然后给出任何涉及NaN结果的后续算术运算NaN。但为什么    10 % "0"返回NaN?"0"通常转换为数字,0例如 in 1 * "0"。如果我尝试10 / "0"这Infinity也有道理。那么......为什么那个表达式10 % "0"返回NaN?!这背后有什么逻辑吗?
查看完整描述

2 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

您的猜测是对的,在所有仅数字运算符中,如果在字符串中使用,Javascript 将尝试将它们转换为数字。


余数运算符也会发生同样的情况:


const x = "10"%"3";

console.log('10 % 3 = ' + x);


那你为什么要NaN评估10%"0"?好吧,它将被转换为10%0,但是余数运算符如果在 0 上使用则没有特殊意义(首先不能除以 0)。所以你得到 NaN:


const x = 10 % 0; // numeric only operation

console.log('10 % 0 = ' + x); // NaN, the above operation has no meaning



查看完整回答
反对 回复 2021-12-02
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

10 % 0也会返回,NaN因为您在问除以 0 时的余数是多少,对此没有有意义的答案。


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 486 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信