在JavaScript开发中,数字和字符串是两种非常基础的数据类型,很多时候我们需要将数字转换为字符串来完成拼接、显示、数据传输等操作。不同的转换方式有不同的特点,下面我们就来逐一介绍。

使用toString方法
toString是Number类型原型上的方法,几乎所有数字都可以调用该方法转换为字符串,还支持传入进制参数,将数字转为对应进制的字符串。
let num = 10; // 转为十进制字符串 let str1 = num.toString(); console.log(str1); // "10" console.log(typeof str1); // "string" // 转为二进制字符串 let str2 = num.toString(2); console.log(str2); // "1010" // 转为十六进制字符串 let str3 = num.toString(16); console.log(str3); // "a"
需要注意的是,如果数字是字面量,不能直接写成10.toString(),因为JavaScript会把点解析为小数点,会报错,需要先给数字加上括号或者赋值给变量再调用。
// 错误写法,会报错 // 10.toString(); // 正确写法 (10).toString(); // "10"
使用String构造函数
String是JavaScript内置的构造函数,可以接收任意类型的参数,将其转换为字符串,对于数字类型同样适用,而且不需要考虑字面量的问题。
let num1 = 123; let str1 = String(num1); console.log(str1); // "123" console.log(typeof str1); // "string" let num2 = 45.67; let str2 = String(num2); console.log(str2); // "45.67"
这种方式的好处是通用性强,不管是什么类型的数据,都可以用String转为字符串,不用考虑不同数据类型的原型方法差异。
使用模板字符串
ES6引入的模板字符串也是常用的转换方式,只需要把数字放在${}中,外层用反引号包裹即可,代码书写起来非常简洁。
let num = 99;
let str = `${num}`;
console.log(str); // "99"
console.log(typeof str); // "string"
// 还可以直接在拼接中使用
let result = `当前数值是${num}`;
console.log(result); // "当前数值是99"这种方式在需要拼接字符串的场景下尤其方便,不用做额外的转换操作,直接嵌入变量即可。
隐式转换
当数字和字符串进行加法运算时,JavaScript会自动将数字转换为字符串,再进行拼接,这也是一种常见的隐式转换方式。
let num = 100; let str = num + ""; console.log(str); // "100" console.log(typeof str); // "string" // 拼接场景下的隐式转换 let total = "数值为:" + num; console.log(total); // "数值为:100"
不过隐式转换的可读性稍差,如果不是明确的拼接场景,不建议过度使用,避免让代码逻辑变得难以理解。
不同方法对比
我们可以通过下面的表格来看看几种方法的差异:
| 转换方法 | 支持进制转换 | 字面量直接使用 | 适用场景 |
|---|---|---|---|
| toString | 是 | 否,需要加括号 | 需要指定进制转换的场景 |
| String构造函数 | 否 | 是 | 通用类型转换,不想处理特殊语法的场景 |
| 模板字符串 | 否 | 是 | 字符串拼接场景,追求代码简洁的场景 |
| 隐式转换 | 否 | 是 | 简单拼接,不介意隐式逻辑的场景 |
在实际开发中,大家可以根据具体的需求选择合适的转换方式,比如需要做进制转换就用toString,做拼接就用模板字符串,需要通用转换就用String构造函数,这样能让代码更清晰也更可靠。
JavaScript数字转换字符串类型转换toString修改时间:2026-05-29 23:19:18