JavaScript. Подробное руководство, 6-е издание, стр. 386
<b> var url = urls[i]; // Для каждого URL-адреса</b><b> var xhr = new XMLHttpRequest(); // Создать HTTP-запрос</b><b> xhr.open("GET'', url, false); // false обеспечит синхронное выполн.</b><b> xhr.send(); // Блокируется до выполнения запроса</b><b> if (xhr.status !== 200) // Возбудить исключение при неудаче</b><b> throw Error(xhr.status + " " + xhr.statusText + ": + url);</b><b> contents.push(xhr.responseText); // Иначе сохранить содержимое</b><b> }</b><b> // Отослать массив содержимого URL-адресов обратно основному потоку</b><b> postMessage(contents);</b><b>}</b>22.5. Типизированные массивы и буферы
Как говорилось в главе 7, массивы в языке JavaScript являются многоцелевыми объектами с числовыми именами свойств и специальным свойством
<b>length</b>• Все элементы типизированного массива являются числами. Конструктор, используемый для создания массива, определяет тип (целые числа со знаком или без знака или вещественные числа) и размер (в битах) чисел.
• Типизированные массивы имеют фиксированную длину.
• Элементы типизированного массива всегда инициализируются значением 0 при его создании.
Всего существует восемь разновидностей типизированных массивов, каждый с различным типом элементов. Создавать их можно с помощью следующих конструкторов:

При создании типизированного массива конструктору передается размер массива. Вместо размера можно передать массив или типизированный массив, который будет использован для инициализации элементов нового массива. После создания типизированного массива его элементы можно читать или изменять с помощью обычной формы записи с квадратными скобками, как и при работе с любым другим объектом, подобным массиву:
<b>var bytes = new Uint8Array(1024); // Один килобайт байтов</b><b>for(var і = 0; і < bytes.length; і++) // Для каждого элемента массива</b><b> bytes[i] = і & 0xFF; // Записать 8 младших бит индекса</b><b>var copy = new Uint8Array(bytes); // Создать копию массива</b><b>var ints = new Int32Array([0,1,2,3]); // Типизированный массив с 4 целыми</b>Современные реализации JavaScript оптимизируют операции с массивами и делают их очень эффективными. Однако типизированные массивы могут быть еще более эффективными, как по времени выполнения операций с ними, так и по использованию памяти. Следующая функция вычисляет наибольшее простое число, которое меньше указанного значения. Она использует алгоритм «Решето Эратосфена», который основан на использовании большого массива, в котором запоминается, какие числа являются простыми, а какие составными. Так как в каждом элементе массива требуется сохранять всего один бит информации, объект Int8Array может оказаться более эффективным в использовании, чем обычный массив JavaScript:
<b>// Возвращает наибольшее целое простое число меньше п.</b><b>// Использует алгоритм "Решето Эратосфена"</b><b>function sieve(n) {</b><b> var а = new Int8Array(n+1); // в a[x] записывается 1, если х - составное число</b><b> var max = Math.floor(Math.sqrt(n));// Множитель не может быть выше этого значения</b><b> var р = 2; // 2 - первое простое число</b><b> while(p <= max) { // Для простых чисел меньше max</b><b> for(var і = 2*р; і <= n; і += p) // Пометить числа, кратные р,</b><b> a[i] = 1; // как составные</b><b> while(a[++p]) /* пустое тело */; // Следующий непомеченный индекс -</b><b> } // простое число</b><b> while(a[n]) n--; // Цикл в обр. напр., чтобы отыскать последнее простое</b><b> return n; // И вернуть его</b><b>}</b>Функция
<b>sieve()</b><b>Int8Array()</b><b>Аггау()</b><b>var matrix = new Float64Array(9); // Матрица 3x3</b><b>var 3dPoint = new Int16Array(3); // Точка в 3-мерном пространстве</b><b>var rgba = new Uint8Array(4); // 4-байтовое значение RGBA пиксела</b><b>var sudoku = new Uint8Array(81); // Доска 9x9 для игры в судоку</b>Форма записи с квадратными скобками, используемая в языке JavaScript, позволяет читать и записывать значения отдельных элементов типизированного массива. Но типизированные массивы определяют дополнительные методы для записи и чтения целого фрагмента массива. Метод
<b>set()</b><b>var bytes = new Uint8Aгray(1024) // Буфер размером 1Кбайт</b>