JavaScript - 将“0”转换为数字

我能理解为什么

10 % "test"

返回NaN......因为“测试”首先被转换为一个数字NaN,然后给出任何涉及NaN结果的后续算术运算NaN

但为什么

    10 % "0"

返回NaN

"0"通常转换为数字,0例如 in 1 * "0"

如果我尝试10 / "0"Infinity也有道理。

那么......为什么那个表达式10 % "0"返回NaN?!这背后有什么逻辑吗?


蛊毒传说
浏览 561回答 2
2回答

偶然的你

您的猜测是对的,在所有仅数字运算符中,如果在字符串中使用,Javascript 将尝试将它们转换为数字。余数运算符也会发生同样的情况:const x = "10"%"3";console.log('10 % 3 = ' + x);那你为什么要NaN评估10%"0"?好吧,它将被转换为10%0,但是余数运算符如果在 0 上使用则没有特殊意义(首先不能除以 0)。所以你得到 NaN:const x = 10 % 0; // numeric only operationconsole.log('10 % 0 = ' + x); // NaN, the above operation has no meaning

收到一只叮咚

10 % 0也会返回,NaN因为您在问除以 0 时的余数是多少,对此没有有意义的答案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript