You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中单引号多行字符串与字符串拼接的区别是什么?

两段JavaScript字符串处理方式的核心区别

嘿,我来帮你拆解这两段代码的差异,其实核心在字符串的构建方式和内容细节上:

1. 内容上的关键差异:多余空格

你仔细看第二段代码里的每一行末尾:\r\n \ —— 反斜杠前面的那个空格会被保留在最终的字符串里!

所以email2的输出里,除了第一行,后面每一行的开头都会多一个空格:

From: a@gmail.com
 To: a@yahoo.com  // 这里开头多了个空格
 Subject: Hello   // 同样多了空格

Empty

而第一段用+=拼接的email,每一行都是紧凑的,没有多余空格:

From: a@gmail.com
To: a@yahoo.com
Subject: Hello

Empty

如果把第二段的空格去掉,写成:

var email2 = 'From: a@gmail.com\r\n\
To: a@yahoo.com\r\n\
Subject: Hello\r\n\
\r\nEmpty';

这时候email和email2的内容就完全一致了。

2. 写法场景的区别

  • 第一段的+=拼接:适合动态生成字符串的场景,比如你需要在循环里添加内容,或者根据条件拼接不同的片段,灵活性更高。现代JavaScript引擎已经对这种拼接做了性能优化,不用太担心效率问题。
  • 第二段的反斜杠多行写法:这是ES6之前的老写法,用来在代码里写多行字符串,适合定义固定的静态文本。但缺点是容易不小心引入多余字符(比如你代码里的空格),而且写法不如ES6的模板字符串直观。

额外补充:更现代的写法

如果是现在写代码,更推荐用ES6的模板字符串,既支持多行,又不会有多余空格的问题:

const email3 = `From: a@gmail.com
To: a@yahoo.com
Subject: Hello

Empty`;

这样写出来的内容和第一段的email完全一致,代码可读性还更高。

内容的提问来源于stack exchange,提问作者Charles Saag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:05:51