Ответ 1
Конкатенация строк в ECMAScript выполняется быстрее. Вот эталон, который я создал, чтобы показать вам:
Какой метод быстрее?
Array Join:
var str_to_split = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
var myarray = str_to_split.split(",");
var output=myarray.join("");
String Concat:
var str_to_split = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
var myarray = str_to_split.split(",");
var output = "";
for (var i = 0, len = myarray.length; i<len; i++){
output += myarray[i];
}
Конкатенация строк в ECMAScript выполняется быстрее. Вот эталон, который я создал, чтобы показать вам:
Я могу сказать, что использование Array.join() выполняется быстрее, я работал над несколькими частями кода JavaScript и значительно увеличил производительность, удалив манипуляции с строками в пользу массивов.
С 2011 года и до сегодняшнего дня...
См. следующий join
переписать с использованием конкатенации строк и насколько медленнее, чем стандартная реализация.
// Number of times the standard `join` is faster, by Node.js versions:
// 0.10.44: ~2.0
// 0.11.16: ~4.6
// 0.12.13: ~4.7
// 4.4.4: ~4.66
// 5.11.0: ~4.75
// 6.1.0: Negative ~1.2 (something is wrong with 6.x at the moment)
function join(sep) {
var res = '';
if (this.length) {
res += this[0];
for (var i = 1; i < this.length; i++) {
res += sep + this[i];
}
}
return res;
}
Мораль - не конкатенировать строки вручную, всегда используйте стандартный join
.
Согласно этот документ Google под названием " Оптимизация кода JavaScript строка concat медленнее, чем объединение массива, но, по-видимому, это не так для современных движков Javascript.
Я сделал тест для примера теста Fibonacci, который они использовали в документе, и показывает, что конкатенация (склеивание) строки почти 4x с помощью Array
join
.
Оператор распространения, написанный с тремя последовательными точками (...), является новым в ES6 и дает вам возможность расширять или распространять итерируемые объекты в несколько элементов.
const books = ["Don Quixote", "The Hobbit", "Alice in Wonderland", "Tale of Two Cities"];
console.log(...books);