最常用方式是加号(+)或模板字符串;加号会隐式转换数字为字符串拼接,但需注意运算顺序;模板字符串更清晰安全,支持任意类型插值;格式化需求应显式转换如toFixed()。

JavaScript 中将数字转为字符串并拼接单位,最常用、最直接的方式是用加号(+)或模板字符串(`),它们会自动触发数字到字符串的隐式转换。
用加号(+)拼接单位
JavaScript 在遇到字符串和数字相加时,会把数字转为字符串再拼接:
- let size = 128;
- let result = size + "px"; // "128px"
- let label = "宽度:" + size + "px"; // "宽度:128px"
注意:加号运算符从左到右执行,若开头是数字且后续有纯数字运算,可能先算数再转串(如 10 + 5 + "px" 得 "15px";但 "px" + 10 + 5 得 "px105"),建议保持操作数顺序清晰。
用模板字符串(推荐)
更清晰、可读性更好,也避免加号歧义:
立即学习“Java免费学习笔记(深入)”;
- let width = 200;
- let height = 150;
- let css = `width: ${width}px; height: ${height}px;`; // "width: 200px; height: 150px;"
模板字符串中插值(${...})内部会自动调用 String() 转换,支持任意类型,包括 null、undefined、对象等,对数字尤其安全简洁。
显式转换后再拼接(适合需控制格式的场景)
当需要补零、保留小数、千分位等格式化时,先用方法转成字符串更可控:
- let num = 3.14159;
- num.toFixed(2) + "s"; // "3.14s"(保留两位小数)
- String(42) + "kg"; // "42kg"(显式调用 String 构造函数)
- (42).toString() + "kg"; // "42kg"(注意括号防止语法错误)
注意:toFixed()、toPrecision() 等方法返回字符串,可直接拼接;而 toString(radix) 支持进制转换(如 (255).toString(16) → "ff")。
避免常见坑
- 不要写
num.toString + "px"(漏了括号,得到函数体字符串 + "px"); - 数组或对象直接拼接会调用
.toString(),可能不符合预期(如[1,2] + "px"→"1,2px"); - 空值处理:
null + "px"→"nullpx",undefined + "px"→"undefinedpx",建议提前校验。


















