parseInt() 和 Number() 之间的区别是什么?

阅读时长 2 分钟读完

在 JavaScript 中,我们经常需要将字符串转换为数字。而这时候就会用到两个内置函数:parseInt() 和 Number()。虽然它们都可以将字符串转换为数字,但是它们之间还是有一些区别的。

parseInt()

parseInt() 函数可解析一个字符串,并返回一个整数。它接受两个参数:要解析的字符串和一个表示进制的整数。如果不传入第二个参数,则默认将字符串解析为十进制数。如果字符串的第一个字符不能被转换为数字或者字符串为空,则返回 NaN。

下面是一个例子:

在这个例子中,parseInt() 函数解析了字符串 '123' 并将其转换为了数值 123。

但是需要注意的是,parseInt() 函数无法解析浮点数,因为它只返回整数。如果你需要将浮点数转换为数字,则需要使用 Number() 函数。

Number()

Number() 函数可以将任何类型的数据转换为数字。如果参数是一个数字,那么它会直接返回这个数字。如果参数是一个对象,则会调用该对象的 valueOf() 方法并尝试将返回值转换为数字。如果无法转换,则返回 NaN。

下面是一个例子:

在这个例子中,Number() 函数将字符串 '123' 和 '12.3' 分别转换为数字 123 和 12.3。

需要注意的是,Number() 函数可以解析浮点数,所以如果你需要将一个字符串转换为浮点数,则应该使用 Number() 函数而不是 parseInt() 函数。

总结

虽然 parseInt() 和 Number() 都可以将字符串转换为数字,但是它们之间还是有一些区别的:

  • parseInt() 只能解析整数,而 Number() 可以解析整数和浮点数。
  • parseInt() 接受一个表示进制的参数,而 Number() 不接受。
  • 如果字符串无法被解析为数字,则 parseInt() 返回 NaN,而 Number() 返回 undefined。

因此,我们在编写代码时需要根据具体情况选择合适的函数。

希望本文对大家有所帮助!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/8899

纠错
反馈