您的位置:

JavaScript中Number类型转字符串

一、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类型转换为字符串类型的几种方式以及需要注意的问题。根据项目的实际需求来选择使用适合的方法。