JavaScript处理多行字符串首选ES6模板字面量(反引号),可保留换行与缩进;兼容旧环境可用加号拼接或括号包裹;慎用转义换行符;动态内容推荐数组join。

JavaScript 中处理多行字符串,核心在于避开传统单引号或双引号的换行限制,同时兼顾可读性、维护性和兼容性。ES6 引入的模板字面量(template literals)是最主流、最推荐的方式,但某些场景下仍需了解替代方案。
用反引号(`)写真正的多行字符串
模板字面量允许直接换行,且保留缩进和空格(包括换行符),适合写 HTML 片段、SQL 查询或带格式的提示文本。
例如:
const html = ``;注意:首尾换行和缩进会成为字符串的一部分。如需去除首尾换行与空白,可用 .trim() 或标签函数(如 String.raw 或自定义 stripIndent)处理。
用加号(+)或括号拼接(兼容老环境)
在不支持 ES6 的运行环境(如旧版 IE)中,可用字符串拼接模拟多行效果,语法虽略冗长,但完全兼容。
- 每行末尾加 +,下一行用引号包裹内容
- 或用括号包裹,让 JS 自动换行连接(更易读)
用转义换行符(\)但慎用
可在单/双引号字符串内用反斜杠 \ 续行,但该换行符本身不会进入字符串——它只是语法上的“续行”,实际生成的是无换行的单行字符串。
例如:
const text = "Hello \ world"; // 等价于 "Hello world"这种写法容易误判语义,且编辑器可能不友好,不建议用于需要真实换行的场景。
用数组 join 处理动态多行内容
当多行内容来自变量或需条件拼接时,把每行作为数组元素再 .join('\n') 是清晰又灵活的做法。
- 避免模板字面量中嵌套复杂逻辑(如多重 if)
- 方便过滤空行、添加前缀或统一缩进


















