Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.12.2013, 23:58
Аспирант
Отправить личное сообщение для okouser Посмотреть профиль Найти все сообщения от okouser
 
Регистрация: 05.11.2013
Сообщений: 10

Стандартная реализация forEach
empty

Последний раз редактировалось okouser, 03.06.2016 в 16:32.
Ответить с цитированием
  #2 (permalink)  
Старый 24.12.2013, 00:52
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

открою тайну: современные браузеры это
this.length

кэшируют
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 24.12.2013, 07:38
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus6
 
Регистрация: 19.12.2013
Сообщений: 180

на чем основано утверждение что var len = arr.length работает быстрее чем просто arr.length?
Ответить с цитированием
  #4 (permalink)  
Старый 24.12.2013, 14:20
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от Maxmaxmaximus6
на чем основано утверждение что var len = arr.length работает быстрее чем просто arr.length?
типа, меньше доступов через точку. думаю, разница в скорости минимальна.

а по сабжу - категорически не следует менять массив внутри forEach.
если оное встретилось в собственном коде - сразу переписать на for, от греха подальше.
Ответить с цитированием
  #5 (permalink)  
Старый 24.12.2013, 16:55
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от okouser
Потому что значение кэшируется, и не нужно каждый раз обращаться к соответствующему свойству.
http://jsperf.com/browser-diet-cache-array-length/10
довольно неоднозначные результаты, на последних версиях FF и Хрома выгоды кэширования нет.
да и тест искусственный - если дать нагрузку внутрь цикла, разница будет ерундовая даже там, где сейчас имеет место.

Сообщение от okouser
Вообще-то идея темы и в моделях работы браузеров. Непонятно, почему реализация forEach в Chrome отличается от остальных.
идея темы - да.
только над ней есть другая, более фундаментальная идея - "неизвестно, как работает forEach сегодня, и как он будет работать завтра", в связи с чем коллекцию нельзя изменять. Это не только в js, кстати. В некоторых языках вообще ошибка выскакивает.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
foreach ограничение на вывод Golovastik Серверные языки и технологии 10 30.01.2011 06:21
Ошибка PHP - foreach ВэйДлин Серверные языки и технологии 4 23.12.2010 00:04
Реализация функции include BreatheInTheVoid Общие вопросы Javascript 4 23.09.2010 14:23
Формирование array, передача и foreach Vulkan AJAX и COMET 4 15.07.2010 13:16
есть ли стандартная функция вывода сожержимого массива что то вроди print_r в PHP??? mazovski Events/DOM/Window 4 20.08.2009 12:52