Ank*_*oni 0 javascript string-concatenation ecmascript-6
我正在尝试找到一种更好的方法来连接JavaScript ES6中的字符串。以下是当前代码段。
方法1:
function concat(...strings){
return ''.concat(...strings);
}
Run Code Online (Sandbox Code Playgroud)
方法2:
function concat(...strings){
return strings.join('');
}
Run Code Online (Sandbox Code Playgroud)
例:
concat("Hey", "There", "How", "Are", "You"); // output is "HeyThereHowAreYou"
Run Code Online (Sandbox Code Playgroud)
我不确定这些方法的性能,因为参数数量可能会增加。任何评论将不胜感激,这可能是最好的,或者任何其他方法都可以提供帮助。
字符串连接可以通过多种方式完成
加号(+)运算符。一旦运算符之一是字符串,+运算符就会进行字符串连接。然后,另一个操作数将转换为字符串。例:
“打个招呼” + 7 +“快!” “快问好7次!”
或者,您可以使用+ =其中
a + = b
是的缩写
a = a + b
连接字符串数组。将要连接的字符串收集在数组中,然后将其加入。
var arr = [];
Run Code Online (Sandbox Code Playgroud)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)提到“绳索2”是一种可能的优化技术。因此,不需要JavaScript中的StringBuilder。
只需使用+ =即可完成。
参考文献:
“ Re:String concatenation ” –由Brendan Eich发的电子邮件,指出+在现代JavaScript引擎上速度更快。
Hans-J着《绳索:弦乐的替代品》(1995年)。Boehm,Russ Atkinson,Michael Plass。