在 JavaScript 中,我们经常需要将字符串转换为数字。而这时候就会用到两个内置函数:parseInt() 和 Number()。虽然它们都可以将字符串转换为数字,但是它们之间还是有一些区别的。
parseInt()
parseInt() 函数可解析一个字符串,并返回一个整数。它接受两个参数:要解析的字符串和一个表示进制的整数。如果不传入第二个参数,则默认将字符串解析为十进制数。如果字符串的第一个字符不能被转换为数字或者字符串为空,则返回 NaN。
下面是一个例子:
const number = parseInt('123'); console.log(number); // 输出:123
在这个例子中,parseInt() 函数解析了字符串 '123' 并将其转换为了数值 123。
但是需要注意的是,parseInt() 函数无法解析浮点数,因为它只返回整数。如果你需要将浮点数转换为数字,则需要使用 Number() 函数。
Number()
Number() 函数可以将任何类型的数据转换为数字。如果参数是一个数字,那么它会直接返回这个数字。如果参数是一个对象,则会调用该对象的 valueOf() 方法并尝试将返回值转换为数字。如果无法转换,则返回 NaN。
下面是一个例子:
const number1 = Number('123'); console.log(number1); // 输出:123 const number2 = Number('12.3'); console.log(number2); // 输出:12.3
在这个例子中,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