Javascript — что быстрей: rez+=«str» vs rez=«str»+«str»?

вопрос наверное больше теоретический
потому что практически работает «почти» с одинаковой скоростью
но в некоторых браузерах есть довольно большие отличия, причём в разные стороны

вот собственно код для сравнения jsperf.com/strings-str-str-vs-str-str-str

также интересен вопрос как на это всё смотрит js движок при работе со строками, вдруг кто-то «случайно» смотрел исходники )
  • Вопрос задан
  • 4045 просмотров
Пригласить эксперта
Ответы на вопрос 3
rmaksim
@rmaksim Автор вопроса
кто-то уже решил сложить строки без данных jsperf.com/strings-str-str-vs-str-str-str/2
и вот там Firefox 16 отжигает по полной на «str»+«str»
var str = ""; str += "<div><h1 class='header'>"; str += "</h1><h2 class='header2'>";
var str = "" + "<div><h1 class='header'>" + "</h1><h2 class='header2'>"
Ответ написан
Shuhrat
@Shuhrat
 rez+="str"; //быстрее

так как не создает временную строку, Закас Николас пишет что в большинстве браузеров этот способ работает на 10-40% быстрее.
Ответ написан
Комментировать
@gro
Всю жизнь и во всех языках при большом количестве строк быстрее было собрать их в массив и потом один раз сделать join().
Правда, в последних js-движках уже разницы особой не видно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы