我一直在寻找一种在 javascript 中处理多行字符串的方法。我曾经遇到过这段代码:
var str = <><![CDATA[
This string spans multiple lines
Doesn't need quoting of single quotes
And the same goes for "double quotes".
Because of the CDATA, I can also include some <b>html</b>
Which can make use of <attributes with="double quotes"/> but at the same
time, I can make use of the > and < signs without worrying about
xml validity.
]]></>;
在 Visual Studio 2012 中使用这段代码时,出现错误行。此外,我从未在 Javascript 或 HTML 中使用过 CDATA,所以我不确定它应该如何工作。
那么,1,这段代码(经过一些调整)可以工作吗? 2、什么是反斜杠?
最佳答案
您发布的代码不是有效的 Javascript。如果您的脚本嵌入在 X[HT]ML 文档中,CDATA
技巧可能会起作用,但我怀疑它仍然不会,因为它会在 Javascript 解释器看到它之前被翻译成文字换行符.在任何情况下,包含未转义换行符的字符串文字都是语法错误。
如果“antislash”是指 \
字符(通常称为“反斜杠”),它可以用于(至少在符合 the ECMAScript specification 的第 4 版或更高版本的解释器中)将文字字符串继续到下一行。但是当您这样做时,您并没有真正创建“多行字符串”,因为字符串结果中同时省略了反斜杠和换行符。
var s = "abc \
123"
console.log(s) //= abc 123
(为了清楚起见,我在上面缩进了,但如果你这样做,结果取决于实现 - 一些 JS 解释器压缩 LineContinuation 之后的额外空白,而其他人则不这样做。)
Javascript 中通常的解决方案是使用明确的换行符和连接:
var z = "abc\n" +
"123"
console.log(z) //= abc
// 123
或者可能是这样的(这是你的意思吗,@torazaburo?):
[
"abc",
"123",
"third line",
"another line"
].join("\n")
关于javascript - 什么是 javascript 反斜线以及它如何处理多行字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26279876/