JavaScript-将“ 0”转换为数字

时间:2019-10-24 21:16:47

标签: javascript

我能理解为什么

10 % "test"

返回NaN ...,因为“ test”首先转换为一个数字,得到NaN,然后涉及NaN的任何后续算术运算也产生NaN

但是为什么

    10 % "0"

返回NaN吗?

"0"通常会转换为0等数字,例如在1 * "0"中。

如果我尝试10 / "0",则会得到Infinity,这也很有意义。

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

2 个答案:

答案 0 :(得分:4)

您的猜测是正确的,在所有仅 number 个运算符中,如果在字符串中使用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

答案 1 :(得分:2)

10 % 0还会返回NaN,因为当您除以0时,您要问的是余数,因此没有任何有意义的答案。