进制转换三剑客:Number、parseInt、parseFloat
2022-12-23 19:04:16
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。
常见问题解答
-
问:我可以使用Number函数把布尔值转换成数字吗?
答:是的,Number(true) === 1,Number(false) === 0。 -
问:我可以使用parseInt函数把浮点数转换成整数吗?
答:可以,parseInt("12.34") === 12。 -
问:我可以使用parseFloat函数把整数转换成浮点数吗?
答:可以,parseFloat("123") === 123.0。 -
问:进制基数有什么用?
答:进制基数指定了你正在使用的数字系统。例如,十进制的进制基数为10,而二进制的进制基数为2。 -
问:NaN是什么意思?
答:NaN代表Not a Number,表示转换失败。