大家好!函数ParseFloat,ParseInt和 和有什么不一样Number?作为这些函数的结果,字符串被转换为数字。
alert('3' + 2);
//--------------------------//
alert(parseFloat('3') + 2);
alert(parseInt('3') + 2);
alert(Number('3') + 2);
大家好!函数ParseFloat,ParseInt和 和有什么不一样Number?作为这些函数的结果,字符串被转换为数字。
alert('3' + 2);
//--------------------------//
alert(parseFloat('3') + 2);
alert(parseInt('3') + 2);
alert(Number('3') + 2);
简而言之:
parseFloat并将parseInt最大对应子串转换为数字,从字符串的开头开始,预先丢弃空白字符。Number- 整行,也预先丢弃空白字符。可以在示例中看到差异
详细回复
为了更完整地了解差异,您可以参考规范
您可以从Number 构造函数开始
如果在没有 的情况下调用此函数
new,则+0其中ToNumber(value)是一个抽象函数,当需要检索数值时调用该函数。
值得注意的是,与下面讨论的函数不同,参数
value仅在某些情况下才会转换为字符串。如果
value转换为字符串,则该字符串必须满足StringNumericLiteral 的语法。此语法与通常定义数字文字规则的NumericLiteral之间的区别在于:+或-指示数字的符号。+0将被转换为.parseInt 函数
此函数的一个显着特征是能够将字符串中数字所在的数字系统的基数作为第二个参数传递。默认情况下,此参数的值为 10。
请注意,第一个参数始终转换为字符串。
这个函数的算法很简单:
可以看到,与上面描述的Number函数不同,不是使用整个字符串来解析,只识别十六进制数字的前缀,而是增加了指定从 2 到 36 的数字系统的基数的能力。
parseFloat 函数
与在parseInt中一样,此函数始终将其参数转换为字符串。
该算法类似于parseInt函数的工作
可以看到,与Number相比,字符串的一部分用于解析,不允许使用0x、0b、0o之类的前缀。与parseInt不同,允许使用e -notation 。
更多例子