返回

进制转换三剑客:Number、parseInt、parseFloat

前端

JavaScript进制转换三剑客:Number、parseInt、parseFloat

一、Number:全能转换器

Number函数是JavaScript中最强大的进制转换函数,它可以将任何数据类型转换成数字。无论你输入字符串、布尔值、对象还是数组,Number函数都能搞定!

它的用法超级简单:

Number(value);

其中,value就是你要转换的值。

Number函数的返回值是一个数字。如果value是个字符串,它会尝试把它转成数字。如果字符串里掺杂了非数字字符,Number函数就会一脸懵逼,返回NaN(Not a Number)。

举个例子:

Number("123") === 123; // true
Number("12.34") === 12.34; // true
Number("abc") === NaN; // false

二、parseInt:整数专家

parseInt函数是专门用来把字符串转换成整数的。它的语法是这样的:

parseInt(string, radix);

其中,string是要转换的字符串,radix是进制基数。radix是个可选参数,默认是10,表示十进制。

parseInt函数的返回值是一个整数。如果string里夹杂了非数字字符,它会自动忽略这些字符,只返回整数部分。

再举个例子:

parseInt("123") === 123; // true
parseInt("12.34") === 12; // true
parseInt("abc") === NaN; // false
parseInt("0xFF", 16) === 255; // true

三、parseFloat:浮点数大师

parseFloat函数是专门用来把字符串转换成浮点数的。它的语法如下:

parseFloat(string);

其中,string是要转换的字符串。

parseFloat函数的返回值是一个浮点数。如果string里混进了非数字字符,它也会自动忽略这些字符,只返回浮点数部分。

再举个例子:

parseFloat("123") === 123; // true
parseFloat("12.34") === 12.34; // true
parseFloat("abc") === NaN; // false

四、异同对比

Number、parseInt和parseFloat都是进制转换函数,但它们之间还是有区别的:

  • Number 可以转换任何类型的数据,而parseInt和parseFloat只能转换字符串。
  • parseInt 专门用来把字符串转换成整数,而parseFloat专门用来把字符串转换成浮点数。
  • parseInt 和parseFloat都可以指定进制基数,而Number只能使用十进制。

五、注意事项

在使用Number、parseInt和parseFloat时,要注意以下几点:

  • 字符串不能包含非数字字符。 如果字符串里掺杂了非数字字符,Number、parseInt和parseFloat都会返回NaN。
  • 进制基数必须是一个整数。 如果进制基数不是整数,Number、parseInt和parseFloat都会返回NaN。
  • 进制基数必须大于等于2。 如果进制基数小于2,Number、parseInt和parseFloat都会返回NaN。

六、总结

Number、parseInt和parseFloat都是JavaScript中常用的进制转换函数,各有各的用途。Number可以转换任何类型的数据,而parseInt和parseFloat只能转换字符串。parseInt专门用来把字符串转换成整数,而parseFloat专门用来把字符串转换成浮点数。parseInt和parseFloat都可以指定进制基数,而Number只能使用十进制。

在使用Number、parseInt和parseFloat时,要注意以下几点:

  • 字符串不能包含非数字字符。
  • 进制基数必须是一个整数。
  • 进制基数必须大于等于2。

常见问题解答

  1. 问:我可以使用Number函数把布尔值转换成数字吗?
    答:是的,Number(true) === 1,Number(false) === 0。

  2. 问:我可以使用parseInt函数把浮点数转换成整数吗?
    答:可以,parseInt("12.34") === 12。

  3. 问:我可以使用parseFloat函数把整数转换成浮点数吗?
    答:可以,parseFloat("123") === 123.0。

  4. 问:进制基数有什么用?
    答:进制基数指定了你正在使用的数字系统。例如,十进制的进制基数为10,而二进制的进制基数为2。

  5. 问:NaN是什么意思?
    答:NaN代表Not a Number,表示转换失败。