2015-12-30 3 views
-3

Я изучаю javascript с моей недавно купленной книгой. И книга объясняет, как работает цикл for. То есть, есть 2 стиля,javascript для синтаксиса и производительности цикла

A: for(var i=0; i<arr.length; i++){ //some code... } 

B: for(var i=arr.length-1; i>-1; i--){ //some code... } 

В книге описывается, что «стиль B более хороший, чем A». Это кажется правдоподобным, но когда java (а не javascript) синтаксис, я не забочусь об этой ситуации. Поэтому мой вопрос: «Стиль В более эффективен»? Спасибо заранее ...

+1

http://jsperf.com/loops-increment-vs-decrement/5 – Adam

+0

Хорошо, я извиняюсь. Мне здесь нехорошо. –

ответ

1

С точки зрения производительности, использование оператора декремента i-- не обязательно быстрее, чем оператор инкремента i++. Производительность мудрая, они оба быстрей.

Узкое место связано с восходящими петлями. Для каждого числа необходимо оценить размер массива. Давайте рассмотрим два случая.

по убыванию Петля

for (var i = array.length; i >= 1; i--) 

array.length вычисляется только один раз, при инициализации переменной я.

Восходящий Loop

for (var i = 1; i <= array.length; i++) 

array.length вычисляется каждый раз, когда i увеличивается на единицу. Вы также должны проверить значение i, чтобы убедиться, что оно меньше длины массива.

Для дальнейшего проникновения в суть, пожалуйста, посмотрите на следующий пост

http://www.2ality.com/2013/07/for-loop-performance.html

Смежные вопросы