一、Number转字符串概述
在Javascript开发中,我们经常需要将Number类型转为字符串类型进行字符串拼接、输出打印等操作。此时我们可以直接使用toString()、String()和+""等方法将Number类型转为字符串类型。但是,由于JavaScript中的数据类型比较随意,可能会出现一些转换的意外情况,需要我们注意。
二、使用toString()方法转换
toString()方法可以将数字类型转为字符串类型。它可以接受一个参数,规定基数(从2到36),表示输出的字符串是几进制。如果不指定参数,默认将数字转成10进制字符串。
let num = 12345; console.log(num.toString()); // "12345" console.log(num.toString(2)); // "11000000111001" console.log(num.toString(16)); // "3039"
需要注意的是,如果Number类型为NaN或者Infinity,使用toString()方法会返回特殊字符串"NaN"或"Infinity"。
let nan = NaN; let inf = Infinity; console.log(nan.toString()); // "NaN" console.log(inf.toString()); // "Infinity"
三、使用String()方法转换
String()方法可以将数字类型转为字符串类型。和toString()方法类似,不同的是只有一个参数,规定转换后字符串的基数。而且,如果传入的是null或undefined,则返回空字符串。
console.log(String(12)); // "12" console.log(String(12.345)); // "12.345" console.log(String(true)); // "true" console.log(String(null)); // "" console.log(String(undefined)); // ""
四、使用+""方式转换
使用+""方式可以将Number类型转为字符串类型,表达式中的+号将Number类型转为字符串类型,再和空字符串进行拼接,得到的结果就是字符串类型。
let num = 12345; console.log(num + ""); //"12345"
五、需要注意的问题
1.小数点位数问题
当Number类型为小数时,有时候转换后的字符串小数点位数超出预期,需要我们小心。例如:
let num = 12.345; console.log(num.toString()); // "12.345" console.log(String(num)); // "12.345" console.log(num + ""); // "12.345"
可以看到,直接使用toString()、String()和+""会将小数点后的位数保留下来。如果我们需要保留小数点后2位,则可以使用toFixed()方法或者手写保留2位小数的函数。
console.log(num.toFixed(2)); // "12.35" console.log((num * 100 / 100).toString()); // "12.35"
2.NaN和Infinity的问题
当Number类型为NaN时,如果使用+""方法转换会得到'NaN'字符串,而使用toString()、String()方法会得到"Number.NaN"字符串。NaN必须使用isNaN()函数进行判断。当Number类型为Infinity时,使用任何方法都能正确地转换成"Infinity"字符串。
let nan = NaN; let inf = Infinity; console.log(nan + ""); // "NaN" console.log(nan.toString()); // "NaN" console.log(String(nan)); // "Number.NaN" console.log(inf + ""); // "Infinity" console.log(inf.toString()); // "Infinity" console.log(String(inf)); // "Infinity"
3.二进制和八进制问题
toString()方法可以将数字类型按照不同基数进行转换。但是不同的浏览器对于按照不同基数的转换结果可能存在差异,因此一般情况下应该使用十进制基数进行转换。
console.log((17).toString(2)); // "10001" console.log((17).toString(8)); // "21"
六、结尾
以上就是在JavaScript中将Number类型转换为字符串类型的几种方式以及需要注意的问题。根据项目的实际需求来选择使用适合的方法。