我应该将长字符串缩短为较短的子字符串吗?

时间:2015-02-22 17:04:50

标签: javascript string optimization

我在某个地方听说我现在记不起来了,将较长的琴弦缩短为较短的琴弦是一个聪明的主意。我应该这样做吗?有什么优点和缺点?

样品:

var str = "some extremly long string for the sample I am making for this Stack Overflow question. Must add more words to make longer.";
alert(str);

var str1 = "some extremely long string";
var str2 = "for the sample I am making";
var str3 = "for this Stack Overflow question.";
var str4 = "Must add more words to make longer.";
alert(str1 +str2 +str3 +str4);

3 个答案:

答案 0 :(得分:3)

您的两个版本不相同,因为连接版本缺少空格。

如果你想打破字符串,加入通常被认为是一种好习惯:

var str = [
    "some extremely long string",
    "for the sample I am making",
    "for this Stack Overflow question.",
    "Must add more words to make longer."
 ].join(" ");

我看到这种模式相当多,而且IMO确实更具可读性。

随着ES6的发展,更多人可能会开始使用模板字符串提供的多线功能:

var str = `some extremely long string 
for the sample I am making 
for this Stack Overflow question. 
Must add more words to make longer.`;

答案 1 :(得分:0)

我能想到的唯一理由就是可读性。在源代码中有一个非常长的行只是不太可读。您的问题巧妙地说明了这一点:在第一个示例中,必须依靠水平滚动来读取字符串;第二个例子没有这样的问题。

有关如何在JavaScript中拆分长字符串文字的讨论,请参阅this answer到另一个问题。

答案 2 :(得分:0)

我不知道有任何这样的优化。如果是可读性问题,可以使用反斜杠来编写多行字符串文字:

var string = "some extremely long string\
 for the sample I am making\
 for this Stack Overflow question.\
 Must add more words to make longer.";