Тема: DOM vs. innerHTML
Показать сообщение отдельно
  #33 (permalink)  
Старый 13.02.2014, 18:15
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Poznakomlus Посмотреть сообщение
kobezzza,

Хеш-таблица
объясни что ты имеешь ввиду говоря
Мне казалось это очевидно. Настоящий массив - это последовательность однотипных элементов расположенных в памяти непосредственно друг за другом, т.е. вычисление значения массива по индексу - это простое вычисление сдвига относительно первого элемента. В хеше же доступ к элементу осуществляется с помощью специальной хеш функции, а элементы таблицы хранятся в "произвольном" порядке.

К тому же базовые массивы JS поддерживают "дырки", что ещё сильнее усложняет логику работы JIT компилятора и кстати это один из главных аргументов гугл против JS

Но тем ни менее в JS есть и настоящие массивы: https://developer.mozilla.org/en-US/...t/Typed_arrays

***

Если посмотреть стандарт про новые arrow function в JS, то можно увидеть, что внутри них не поддерживается ссылка arguments, который является виновником многих тормозов, т.к. не позволяет JIT делать многие оптимизации. К слову в моём Collection оптимизация arguments идёт всегда, т.е. в callback передаются только те параметры, которые явно декларированы в описание функции, т.е.:

$C([]).forEach(function () {
    console.log(arguments); // []
});

$C([]).forEach(function (el) {
    console.log(arguments); // [el]
});


Т.е. если забыть продекларировать все нужные параметры и использовать arguments, то можно словить баг, но это очень сильно ускоряет работу итератора, а вот нативный JIT такую штуку сделать не может, т.к. она приводит к потенциальной ошибке.
__________________
kobezzza
code monkey
Ответить с цитированием