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

2022-08-30 00:25:44

在 JavaScript 中 和 之间有什么区别?parseInt(string)Number(string)


答案 1
parseInt("123qwe")

返回 123

Number("123qwe")

返回NaN

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


编辑#1:卢塞罗评论了可以与一起使用的基数。就此而言,请参阅下面的医生的答案(我不打算在这里复制,医生应该有相当的名气......)。parseInt()


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


答案 2

第一个参数采用两个参数:

parseInt(string, radix)

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

如果省略基数参数,JavaScript 将假定以下内容:

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

您提到的另一个函数只接受一个参数:

Number(object)

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

如果该值无法转换为法定数字,则返回 NaN。