Der*_*Jan 3 javascript parsing nan control-characters
在Chrome和Firefox上的JavaScript中:
isNaN( "\n" )给出false
parseFloat ( "\n" )了NaN
同样是产生了\t,\r和\f".
\n 是一个数字\n给你不是数字.\0,\\并按\"预期工作.NaN是一个数字,只是不能代表任何其他价值\n数字也是如此,这是不可表示的.为什么浏览器会这样实现?
小智 7
因为toNumber只包含空格(或者如果它是空的)的任何字符串的转换会导致0.
console.log(Number("\n")); // 0
Run Code Online (Sandbox Code Playgroud)
这些parseInt/Float方法实际上需要转换一些数字内容,尽管它允许前导空格和尾随垃圾.
console.log(parseFloat(" 123.45odsifjj")); // 123.45
Run Code Online (Sandbox Code Playgroud)
所述toNumber转化是在定义9.3.1 ToNumber施加到串类型.
StringNumericLiteral为空或仅包含空格将转换为+0