Например есть такой объект как arguments доступный внутри любой функции.
Пожалуйста объясните два этих пункта.
Псевдомассив - это объект, структура которого совпадает со структурой массива (т.е. он хранит элементы в индексах от 0 до length-1), но при этом он не обладает методами, свойственными полноценным массивам из-за отличий в прототипе.
Сделать свой псевдомассив довольно просто:
var a = {0 : 'foo', 1: 'bar', length: 2};
Теперь a - псевдомассив из 2х элементов. К ним можно обращаться по индексам - a[0], a[1] - но у него нет таких методов как sort, slice, concat, forEach. JSON-сериализатор также сериализует его не как массив, а как объект.
В стандартной библиотеке javascript единственным классом псевдомассивов является Arguments, который представлен специальным объектом arguments в каждой регулярной функции.
Также в браузерном javascript псевдомассивами являются экземпляры классов NodeList, HTMLCollection и подобных, возвращаемые некоторыми функциями для работы с DOM, такими как document.getElementsByXXX().
Любую функцию, работающую с массивом, можно применить к псевдомассиву при помощи call:
a.sort(); // Ошибка: в псевдомассиве нет метода sort
Array.prototype.sort.call(a); // А вот так - работает
[].sort.call(a); // И так тоже работает
Также псевдомассив можно превратить в нормальный массив при помощи slice:
Array.prototype.slice.call(a); // ["foo", "bar"]
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости