我正在尝试找到一种更好的方法来连接 javascript ES6 中的字符串。以下是当前的代码片段。
方法一:
function concat(...strings){
return ''.concat(...strings);
}
方法2:
function concat(...strings){
return strings.join('');
}
示例:
concat("Hey", "There", "How", "Are", "You"); // output is "HeyThereHowAreYou"
我不确定这些方法的性能,因为参数数量可能会增加。任何评论都将受到高度赞赏,这可能是最好的,或者任何其他方法都可以提供帮助。
最佳答案
字符串连接可以通过多种方式完成
加号 (+) 运算符。当 + 操作符的操作数之一是字符串时,它就会进行字符串连接。然后另一个操作数被转换为字符串。示例:
"Say hello " + 7 + " times fast!" ’Say hello 7 times fast!’
或者,您可以使用 += where
a += b
是
的缩写a = a + b
连接字符串数组。收集要连接到数组中的字符串,然后将其连接起来。
var arr = [];
arr.push("Say hello "); arr.push(7); arr.push(" times fast"); arr.join("") ’Say hello 7 times fast’
哪个更快?
字符串是不可变的,大多数结果是字符串的字符串操作都会生成新字符串。
因此,C# 或 Java 等字符串处理与 JavaScript 类似的语言都有特殊的类来帮助连接字符串。例如,C# 调用此类 StringBuilder。然而,现代 JavaScript 引擎在内部优化了 + 运算符 1 。 Tom Schuster 提到 Ropes 2作为一种可能的优化技术。因此,JavaScript 中不需要 StringBuilder。
只需使用 += 即可完成。
引用文献:
“回复:String concatenation ” – Brendan Eich 的电子邮件指出 + 在现代 JavaScript 引擎上速度更快。
“Ropes: an Alternative to Strings (1995) ”汉斯-J.伯姆、拉斯·阿特金森、迈克尔·普拉斯。
关于javascript - 使用扩展参数连接字符串的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51035223/