【发布时间】:2021-08-30 15:27:55
【问题描述】:
我正在查看 isNaN() 函数的示例,它在下面提供了此代码。 有人可以解释为什么 100F 不是数字但 0.0314E+2 是数字吗?我看到这两个数字都是字符串,isNaN 函数应该能够将数字与字符串区分开来,但我只是不明白它们为什么不同,因为两个字符串都有数字和一个字母,而让后者如此难以理解的是它有一个带有 E+ 运算符的字母并且不知何故是一个数字?
function milliseconds(x) {
if (isNaN(x)) {
return 'Not a Number!';
}
return x * 1000;
}
console.log(milliseconds('100F'));
// expected output: "Not a Number!"
console.log(milliseconds('0.0314E+2'));
// expected output: 3140
【问题讨论】:
-
Number("100F")->NaN因为F不是有效数字。Number("0.0314E+2")->3.14科学计数法。 -
科学记数法
-
这里他们用你的例子很好地解释了 - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
"因为 isNaN 函数内部的强制转换可以是surprising,所以您也可以选择使用Number.isNaN()。" (citation)
标签: javascript