2010-11-13 63 views
1

嗯,我在双引号在双逃逸Javascript字符串行情

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

我会想这样做

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

目前我做这个

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

它的长字符串在所有浏览器中正常工作。但是,这是做到这一点的正确方法吗?

+0

ATLEAST JSLint的不喜欢它 - 错误的擒纵机构。 – 2010-11-13 21:12:48

+0

是否需要那些'\ n'?第一和第三不是相同的字符串。 – kennytm 2010-11-13 21:13:42

+0

@KennyTM,我不理解你。 “.......”只是表示一个长字符串 – 2010-11-13 21:17:28

回答

4

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

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

在上例中,您如何知道单词“Long”之前有多少空格?我不会指望在浏览器上保持一致。

我的理解是,使用加号来对字符串进行联合处理也同样有效...... JavaScript解析器足够聪明,可以像您的示例一样处理。

1

我建议只加入它。

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

如果你加入了很多字符串,这是最好的方法。 – adamJLev 2010-11-13 21:55:18

0

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

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

JavaScript不支持PHP这样的“here文件”,所以你不能做得更好。尽管如此,你将会在行的开始处得到许多空间(如果你按照你在这里展示的方式缩进代码)。为了避免这种情况,使用字符串连接:

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

或数组接合(由MEDER所建议的):

var Variable = [ 
    "Really", 
    "Long", 
    "String" 
].join('\n'); 
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