在双引号中转义Javascript字符串

时间:2010-11-13 21:10:23

标签: javascript

我的双引号中有一个长字符串

var Variable = "Really Long ...... String"

我想要这样做

var Variable = "Really
                Long
                ...... 
                String"

目前我这样做

var Variable = "Really\n\
                Long\n\
                ......\n\
                String"

它适用于所有浏览器。但这是正确的方法吗?

5 个答案:

答案 0 :(得分:4)

我认为使用加号可能更有效。

var Variable = "Really " +
                "Long " +
                "...... " +
                "String";

在上面的示例中,您如何知道“Long”这个词之前有多少个空格?我不相信它会在浏览器中保持一致。

我的理解是使用加号来连接字符串同样有效... javascript解析器足够聪明,可以像处理示例一样处理它。

答案 1 :(得分:1)

我建议加入它。

var str = [
   'This is a very long piece ',
   'of string that I\'m going to join together ',
   'right about now.'
].join('')

答案 2 :(得分:0)

您可以使用数组并加入值。但我不确定性能。如果你使用字符串连接,它可以(并且很可能会)由引擎优化(意味着它在解析代码时生成一个字符串),但引擎是否如此聪明以发现一个简单的连接数组....我不这么认为。

var Variable = ["Really ",
                "Long ",
                "...... ",
                "String"].join('');

答案 3 :(得分:0)

JavaScript不像PHP那样支持“here documents”,所以你不能做得更好。你会在行的开头有很多空格(如果你按照你在这里展示它的方式缩进代码)。为避免这种情况,请使用字符串连接:

var Variable = "Really\n" +
"Long\n" +
"String";

或阵列加入(由meder建议):

var Variable = [
    "Really",
    "Long",
    "String"
].join('\n');

答案 4 :(得分:0)

LineContinuation是ECMA-262第5版(§7.8.4)中的新功能。如果您绝对必须遵守ECMAScript 3,请避免使用它,并使用+.join('')或其他。但正如您所提到的,主要浏览器(甚至IE 6) [1] 支持这一特定功能,除了编码约定外,我认为没有其他理由可以避免这种情况。

(参考:[1] http://shwup.blogspot.com/2009/05/line-continuation-in-javascript.html