当我试图探索pareseInt(),parseFloat()和Number()之间的区别时,我吸收了这种差异。
parseInt("10e+1"); // 10
parseFloat("10e+1"); // 100
Number ("10e+1"); // 100
当我在Mozilla Web文档上阅读有关parseFloat()的文档时,我理解parseFloat()将接受exponent。哪里没有关于parseInt()的具体要点。我非常有兴趣知道为什么这些类似方法存在差异
答案 0 :(得分:3)
parseInt不了解exponantial表示法。但是它可以解析字符串中的数字,该字符串是与字符连接的数字。以下也将返回10:
parseInt("10something")
答案 1 :(得分:1)
JavaScript提供了两种将非数字基元转换为数字的方法:parseInt()
和parseFloat()
。您可能已经猜到,前者将值转换为整数,而后者将值转换为浮点数。
"10e+1"
是一个字符串,parseInt()
无法识别指数表示法,因此它会停在第二个字母处。10e+1
是一个数字文字,其评估值为100; parseInt()
看到了
100
并愉快地归还。{/ li>
"10e+1"
作为字符串在解析为float
时非常正常。示例:强>
console.log( 'parseInt( 10e+1 ) return: ' + parseInt( 10e+1 ) );
console.log( 'parseInt( "10e+1" ) return: ' + parseInt( '10e+1' ) );
console.log( 'parseFloat( 10e+1 ) return: ' + parseFloat( 10e+1 ) );
console.log( 'parseFloat( "10e+1" ) return: ' + parseFloat( '10e+1' ) );