Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены. Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
for (var i = 1; i <= 3; i++){
string1 = string1.concat(generate_string(i));
}
function generate_string(i){
return "bla " + i + "; "
}
Я ожидал, что код вернет bla 1; bla 2; bla 3; , однако он возвращает bla 3;
Где у меня ошибка?
string1 объявите:
var string1 = '';
var t=new Date().getTime(),b,i; // ====== СОЕДИНЕНИЕ СТРОК ============ var a,b,c='',d='abcdefghigklmnopqr',e=[],i; for(i=0;i<100000;i++){// Ha 100'000 интераций //c+=d+123+'_'+i; // -Opera: 180, IE: 640, FF: 30, Chrome: 230, Safari: 80 // ВЫВОД: строки складываются лучше всего в FireFoxe, а хуже всех - IE //c=c.concat(d,123,'_',i); // -Opera: 110, IE: 710, FF: 30, Chrome: !!!, Safari: 100 //e.push(d+123+'_'+i); // Opera: 270, IE: 710, FF: 30, Chrome: 250, Safari: 90 --- без e.join(''); //e.push(d+123+'_'+i); // -Opera: 460, IE: 1100, FF: 170, Chrome: 280, Safari: 290 --- c e.join(''); //e.push(d); // Opera: 10, IE: 200, FF: 6, Chrome: 15, Safari: 80 --- без e.join(''); //e.push(d); // Opera: 60, IE: 250, FF: 36, Chrome: 75, Safari: 80 --- c e.join(''); //e.push(d,123,i); // -Opera: 190, IE: 410, FF: 126, Chrome: 300, Safari: 170 --- c e.join(''); //e.push(d);e.push(123);e.push(i); // Opera: 190, IE: 650, FF: 96, Chrome: 285, Safari: 190 --- c e.join(''); }//c=e.join(''); // В IE лучше собирать в массив, а затем join() // в остальных - сразу в строку //======== ОПРЕДЕЛЕНИЕ ФУНКЦИЙ ========== //function ff(){var a,b,c,d,e,fff;a=1;fff=function(){var a,b,c,d,e,f;a=0;}} // Opera: 63, IE: 790, FF: 19, Chrome: 10, Safari: 19 //function fff(){var a,b,c,d,e,f;a=0;}function ff(){var a,b,c,d,e,f;a=1;fff();} // Opera: 20, IE: 200, FF: 1.2, Chrome: 4.1, Safari: 3.6 //for(i=0;i<100000;i++){ff();}// результат очевиден: функции из функций лучше вытащить //========================================== b=new Date().getTime(); //alert('e.len='+e.length+'\nTime='+(b-t)); alert('c.len='+c.length+' i='+i+'\nTime='+(b-t));Chrome при использовании concat() с чего-то зависает... почему - не знаю, да и не важно...
Отправить комментарий
Приветствуются комментарии:- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.Для остальных вопросов и обсуждений есть форум.