JavaScript中的多行字符串:3种简化生活的方法

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

如何在JavaScript中为变量赋值多行字符串:初学者解析

\n\n

您是否曾在代码中编写长文本时想过:“难道就不能直接按回车键在新行继续吗?”如果您是JavaScript新手,很可能已经遇到过这种情况。您试图将多行文本保存到变量中,却遇到了语法错误。熟悉吗?

\n\n

问题“How can I assign a multiline string literal to a variable?”是Stack Overflow上最热门的问题之一。成千上万的开发者在寻找答案。这并不奇怪:处理多行字符串是每个编写JavaScript的人都需要掌握的基础知识。

\n\n

在本文中,我们不仅会给出干巴巴的答案。我们将解析三种可行的方法,展示实际生活中的示例,并建议您选择哪种方法,以使您的代码整洁、可读且不会引起头痛。

\n\n

为什么JavaScript不喜欢引号中的换行符?

\n\n

让我们先弄清楚主要问题。如果您尝试这样写:

\n\n
let message = "Привет!\nКак дела?\nВсё хорошо?";\nconsole.log(message);
\n\n

…您将得到错误SyntaxError: unterminated string literal。为什么?因为在普通字符串(双引号或单引号)中,JavaScript认为字符串在它开始的那一行结束。物理换行会破坏字符串。

\n\n

但别急着沮丧。我们至少有三种方法可以绕过这个限制。第一种是最现代、最方便的方法。

\n\n

方法1:模板字面量(Template Literals)——您的新好朋友

\n\n

从ES6(ECMAScript 2015)开始,JavaScript引入了模板字面量。这些是用反引号(` `)括起来的字符串。它们一劳永逸地解决了多行问题。

\n\n

看看这有多简单:

\n\n
let multilineString = `这是第一行。\n这是第二行。\n而这是第三行。`;\n\nconsole.log(multilineString);\n// 输出:\n// 这是第一行。\n// 这是第二行。\n// 而这是第三行。
\n\n

一切开箱即用。您只需编写带换行的文本,JavaScript就会原样保留它们。没有多余的字符,没有魔法。

\n\n

为什么这对初学者来说是最好的选择?

\n
    \n
  • 可读性:代码看起来和您设想的一样。
  • \n
  • 支持插值:您可以通过${...}直接将变量插入字符串。
  • \n
  • 标准:所有现代浏览器和Node.js都支持模板字面量。
  • \n
\n\n

带插值的示例:

\n\n
let name = "安娜";\nlet greeting = `你好,${name}!\n欢迎来到PythonLib。\n今天是学习代码的好日子。`;\n\nconsole.log(greeting);\n// 输出:\n// 你好,安娜!\n// 欢迎来到PythonLib。\n// 今天是学习代码的好日子。
\n\n

这种方法非常方便,在现代开发中90%的情况下都在使用。如果您刚开始学习,请记住它。

\n\n

方法2:字符串拼接(老派但可靠的方法)

\n\n

在模板字面量出现之前,开发人员使用字符串拼接——通过+运算符连接字符串。这种方法仍然适用,特别是当您处理非常旧的代码或因某些原因无法使用ES6时。

\n\n

它看起来像这样:

\n\n
let multilineString = "这是第一行。\\n" +\n                     "这是第二行。\\n" +\n                     "而这是第三行。";\n\nconsole.log(multilineString);\n// 输出:\n// 这是第一行。\n// 这是第二行。\n// 而这是第三行。
\n\n

请注意\\n——这是一个转义序列

博客

书籍推荐