Jer*_*acs 3 javascript parsing
当我试图破坏我的代码时,我发现了这种意想不到的行为......有人可以向我解释为什么会这样,以及应该如何确保提供的值是真正的浮动?
例如:
alert(parseFloat('4.2.2'));
Run Code Online (Sandbox Code Playgroud)
我在期待NaN......不是我得到的.
我在这里做了一个非常简单的jsfiddle演示.
这就是方法parseFloat和parseInt方法的工作方式.它们解析输入无效的点.它们NaN仅在第一个字符无效时返回.
引用https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseFloat
parseFloat解析其参数,一个字符串,并返回一个浮点数.如果遇到符号(+或 - ),数字(0-9),小数点或指数以外的字符,则返回到该点的值,并忽略该字符和所有后续字符.允许前导和尾随空格.如果第一个字符无法转换为数字,则
parseFloat返回NaN.
要检查字符串是否是您可以使用的数字(来自JavaScript中的验证十进制数字 - IsNumeric())
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
Run Code Online (Sandbox Code Playgroud)