小编典典

JavaScript 中的 parseInt(string) 和 Number(string) 有什么区别?

all

parseInt(string)JavaScript和JavaScript有什么区别Number(string)


阅读 57

收藏
2022-05-18

共1个答案

小编典典

parseInt(“123qwe”)

返回 123

Number("123qwe")

返回NaN

换句话说parseInt(),解析到第一个非数字并返回它解析的任何内容。Number()想要将整个字符串转换为数字,也可以是浮点数。


编辑#1:Lucero 评论了可以与parseInt().
就这一点而言,请参阅下面的回答(我不会在这里复制,医生应该享有相当大的名气......)。

第一个接受两个参数:

parseInt(string, radix)

radix 参数用于指定使用哪种数字系统,例如基数为 16(十六进制)表示应将字符串中的数字从十六进制数解析为十进制数。

如果 radix 参数被省略,JavaScript 假设如下:

  • 如果字符串以“0x”开头,则
    基数为 16(十六进制)
  • 如果字符串以“0”开头,则基数为 8(八进制)。此功能
    已弃用
  • 如果字符串以任何其他值开头,则基数为 10(十进制)

你提到的另一个函数只需要一个参数:

Number(object)

Number() 函数将对象参数转换为表示对象值的数字。

如果该值不能转换为合法数字,则返回 NaN。


编辑#2:关于用例:这已经有点写在字里行间了。Number()在您间接想要检查给定字符串是否完全表示数值、浮点数或整数的情况下使用。parseInt()/parseFloat()不是那么严格,因为它们只是在数值停止时解析并停止(基数!),这使得当您需要前面的数值“以防有一个”时它很有用(请注意,parseInt("hui")也返回NaN)。最大的区别是使用Number()不知道并且parseInt()可能间接猜测给定字符串的基数(有时会导致奇怪的结果)。

2022-05-18