Baseline Widely available *
ÐбÑÐµÐºÑ TypedArray (ÑипизиÑованнÑй маÑÑив) ÑÑо маÑÑивоподобное пÑедÑÑавление нижележаÑего бÑÑеÑа Ñ Ð±Ð¸Ð½Ð°ÑнÑми даннÑми (ArrayBuffer). ÐÐµÑ Ð½Ð¸ глобалÑного ÑвойÑÑва TypedArray
, ни оÑкÑÑÑого конÑÑÑÑкÑоÑа TypedArray
. Ðо ÑÑÑеÑÑвÑÐµÑ ÑÑд глобалÑнÑÑ
ÑлеменÑов, коÑоÑÑе ÑвлÑÑÑÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑами ÑипизиÑованнÑÑ
маÑÑивов Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑеÑно заданнÑÑ
Ñипов даннÑÑ
. Ðни пÑÐ¸Ð²ÐµÐ´ÐµÐ½Ñ Ð½Ð¸Ð¶Ðµ. Ðалее Ð²Ñ Ð½Ð°Ð¹Ð´ÑÑе обÑие ÑвойÑÑва и ÑÑнкÑии, коÑоÑÑе можно иÑполÑзоваÑÑ Ñ Ð»ÑбÑми ÑипизиÑованнÑми маÑÑивами.
new TypedArray(); // новое в ES2017 new TypedArray(length); new TypedArray(typedArray); new TypedArray(object); new TypedArray(buffer [, byteOffset [, length]]); где TypedArray() ÑÑо одно из ÑледÑÑÑÐ¸Ñ Ð·Ð½Ð°Ñений: Int8Array(), Uint8Array(), Uint8ClampedArray(), Int16Array(), Uint16Array(), Int32Array(), Uint32Array(), Float32Array(), Float64Array()ÐаÑамеÑÑÑ
ÐÑи вÑзове в памÑÑи ÑоздаÑÑÑÑ Ð±ÑÑÐµÑ Ð´Ð»Ð¸Ð½Ñ length
BYTES_PER_ELEMENT байÑ, ÑодеÑжаÑий нÑли
Ðогда вÑзÑваеÑÑÑ Ñ Ð°ÑгÑменÑом typedArray
, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð±ÑекÑом лÑбого из Ñипов ÑипизиÑованнÑÑ
маÑÑивов (напÑимеÑ, Int32Array
), Ñогда пеÑеданнÑй маÑÑив typedArray
копиÑÑеÑÑÑ Ð² новÑй маÑÑив. Ðаждое знаÑение из typedArray
конвеÑÑиÑÑеÑÑÑ Ð² ÑооÑвеÑÑÑвÑÑÑий конÑÑÑÑкÑоÑÑ Ñип пÑÑмо пеÑед копиÑованием. Ðлина нового обÑекÑа typedArray
бÑÐ´ÐµÑ Ñакой же как и длина пеÑеданного в паÑамеÑÑе typedArray
ÐовÑй маÑÑив ÑоздаÑÑÑÑ Ñак, как еÑли Ð±Ñ Ð±Ñла вÑзвана ÑÑнкÑÐ¸Ñ TypedArray.from()
Ðогда пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð²Ñзов Ñ Ð¿Ð°ÑамеÑÑами buffer
и опÑионалÑнÑми паÑамеÑÑами byteOffset
и length
, Ñо бÑÐ´ÐµÑ Ñоздан новÑй ÑипизиÑованнÑй маÑÑив, коÑоÑÑй бÑÐ´ÐµÑ Ð¾ÑÑажаÑÑ buffer
Ñипа ArrayBuffer
. ÐаÑамеÑÑÑ byteOffset
и length
опÑеделÑÑÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ (ÑазмеÑ) памÑÑи, вÑводимÑй даннÑм маÑÑивоподобнÑм пÑедÑÑавлением. ÐÑли оба ÑÑиÑ
паÑамеÑÑа (byteOffset
и length
) опÑÑенÑ, Ñо бÑÐ´ÐµÑ Ð¸ÑполÑзован веÑÑ Ð±ÑÑÐµÑ buffer
; еÑли опÑÑен ÑолÑко length
, Ñо бÑÐ´ÐµÑ Ð²Ñведен веÑÑ Ð¾ÑÑаÑок бÑÑеÑа поÑле ÑмеÑÐµÐ½Ð¸Ñ Ð½Ð°Ñала оÑÑÑÑÑа ÑлеменÑов, заданного паÑамеÑÑом byteOffset
.
ECMAScript 2015 опÑеделÑÐµÑ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¾Ñ Ð¾Ð±ÑекÑа TypedArray, коÑоÑÑй ÑвлÑеÑÑÑ Ð¿ÑоÑоÑипом вÑеÑ
TypedArray-конÑÑÑÑкÑоÑов. ÐÑÐ¾Ñ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¾Ñ Ð½Ðµ оÑкÑÑÑ ÑвнÑм обÑазом: какое-либо глобалÑное ÑвойÑÑво %TypedArray%
или TypedArray
оÑÑÑÑÑÑвÑеÑ. Ðн доÑÑÑпен ÑолÑко ÑеÑез Object.getPrototypeOf(...) (
напÑимеÑ, Int8Array.prototype)
. ÐÑе TypedArray
s конÑÑÑÑкÑоÑÑ Ð½Ð°ÑледÑÑÑ Ð¾Ð±Ñие ÑвойÑÑва Ð¾Ñ ÐºÐ¾Ð½ÑÑÑÑкÑоÑа %TypedArray%
. ÐÑоме Ñого, вÑе пÑоÑоÑÐ¸Ð¿Ñ ÑипизиÑованнÑÑ
маÑÑивов (TypedArray.prototype
) имеÑÑ Ñвоим пÑоÑоÑипом %TypedArray%.prototype
.
Сам по Ñебе конÑÑÑÑкÑÐ¾Ñ %TypedArray%
не Ð¸Ð¼ÐµÐµÑ Ð¿Ð¾Ð»ÑзÑ. Ðго вÑзов напÑÑмÑÑ Ð¸Ð»Ð¸ ÑеÑез опеÑаÑÐ¾Ñ new
вÑдаÑÑ Ð¾ÑÐ¸Ð±ÐºÑ TypeError
, кÑоме ÑлÑÑаÑ, когда он иÑполÑзÑеÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±ÑекÑов в JS-движке, поддеÑживаÑÑего подклаÑÑÑ. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ñакие движки неизвеÑÑнÑ, поÑÑÐ¾Ð¼Ñ %TypedArray%
иÑполÑзÑеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑнкÑионалÑноÑÑи (заÑÑÑка) бÑаÑзеÑов в конÑÑÑÑкÑоÑаÑ
TypedArray.
Ðогда ÑоздаÑÑÑÑ ÑкземплÑÑ TypedArray (напÑимеÑ, Int8Array
), Ñо бÑÑеÑнÑй маÑÑив ÑоздаÑÑÑÑ Ð² памÑÑи, в ÑлÑÑае еÑли обÑÐµÐºÑ ArrayBuffer
пеÑедаÑÑÑÑ ÐºÐ°Ðº аÑгÑÐ¼ÐµÐ½Ñ ÐºÐ¾Ð½ÑÑÑÑкÑоÑа, Ñо вмеÑÑо ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±ÑÑеÑа иÑполÑзÑеÑÑÑ Ð¾Ð½. ÐдÑÐµÑ Ð±ÑÑеÑа ÑоÑ
ÑанÑеÑÑÑ Ð²Ð¾ внÑÑÑеннем ÑвойÑÑве ÑкземплÑÑа, и вÑе меÑÐ¾Ð´Ñ Ð¸Ð· %TypedArray%.prototype
, напÑÐ¸Ð¼ÐµÑ ÑеÑÑеÑÑ Ð¸ геÑÑеÑÑ, опеÑиÑÑÑÑ Ñ Ð±ÑÑеÑом, по ÑÑÐ¾Ð¼Ñ Ð°Ð´ÑеÑÑ.
ÐолÑÑиÑÑ Ð´Ð¾ÑÑÑп к ÑлеменÑам маÑÑива можно иÑполÑзÑÑ ÑÑандаÑÑнÑй ÑинÑакÑÐ¸Ñ Ð¿Ð¾ индекÑÑ (напÑимеÑ, arr[12]
). Ðднако, полÑÑение и ÑÑÑановка индекÑиÑÑемÑÑ
ÑвойÑÑв по Ñепи пÑоÑоÑипов не бÑÐ´ÐµÑ Ð¿ÑоиÑÑ
одиÑÑ Ð´Ð°Ð¶Ðµ в ÑлÑÑае, когда Ð²Ñ Ð¿ÑÑаеÑеÑÑ Ð¸ÑполÑзоваÑÑ Ð¸Ð½Ð´ÐµÐºÑÑ Ð¸Ð·Ð²Ð½Ðµ маÑÑива. ÐндекÑиÑÑемÑе ÑвойÑÑва обÑаÑаÑÑÑÑ Ðº ÑлеменÑам бÑÑеÑа ArrayBuffer
и не имеÑÑ Ð¾ÑноÑÐµÐ½Ð¸Ñ Ðº обÑекÑнÑм ÑвойÑÑвам. Также можно иÑполÑзоваÑÑ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ñе ÑвойÑÑва как и в обÑÑнÑÑ
обÑекÑаÑ
.
//УÑÑановка и полÑÑение иÑполÑзÑÑ ÑÑандаÑÑнÑй ÑинÑакÑÐ¸Ñ Ð¼Ð°ÑÑивов
var int16 = new Int16Array(2);
int16[0] = 42;
console.log(int16[0]); // 42
//ÐÑÑÑÑÑÑвÑÐµÑ Ð¾Ð±ÑаÑение к ÑвойÑÑÐ²Ñ Ð¿ÑоÑоÑипа (ÑÐ»ÐµÐ¼ÐµÐ½Ñ â20 должен Ð±Ñ Ð¸Ð¼ÐµÑÑ Ð·Ð½Ð°Ñение "foo")
Int8Array.prototype[20] = "foo";
new Int8Array(32)[20]; // 0
//ÐÑÑÑÑÑÑвÑÐµÑ Ð´Ð°Ð¶Ðµ в ÑлÑÑае обÑаÑÐµÐ½Ð¸Ñ Ðº индекÑÑ Ð¸Ð·Ð²Ð½Ðµ ÑекÑÑего маÑÑива
Int8Array.prototype[20] = "foo";
new Int8Array(8)[20]; // undefined
// Ñакже в ÑлÑÑае оÑÑиÑаÑелÑнÑÑ
индекÑов
Int8Array.prototype[-1] = "foo";
new Int8Array(8)[-1]; // undefined
// ÐопÑÑÑÐ¸Ð¼Ñ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ñе ÑвойÑÑва
Int8Array.prototype.foo = "bar";
new Int8Array(32).foo; // "bar"
ÐбÑекÑÑ TypedArray Тип Ðиапазон знаÑений Ð Ð°Ð·Ð¼ÐµÑ (байÑÑ) ÐпиÑание Тип Web IDL ÐквиваленÑнÑй Ñип ÑзÑка C Int8Array
-128 до 127 1 8-биÑное Ñелое Ñо знаком Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸ÐµÐ¼ до двÑÑ
byte
int8_t
Uint8Array
0 до 255 1 8-биÑное беззнаковое Ñелое octet
uint8_t
Uint8ClampedArray
0 до 255 1 8-биÑное беззнаковое Ñелое (ÑикÑиÑованное Ð¾Ñ 0 до 255) octet
uint8_t
Int16Array
-32768 до 32767 2 16-биÑное Ñелое Ñо знаком Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸ÐµÐ¼ до двÑÑ
short
int16_t
Uint16Array
0 до 65535 2 16-биÑное беззнаковое Ñелое unsigned short
uint16_t
Int32Array
-2147483648 до 2147483647 4 32-биÑное Ñелое Ñо знаком Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸ÐµÐ¼ до двÑÑ
long
int32_t
Uint32Array
0 до 4294967295 4 32-биÑное беззнаковое Ñелое unsigned long
uint32_t
Float32Array
1.2x10-38 to 3.4x1038 4 32-биÑное ÑиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой IEEE-ÑÑандаÑÑа (7 знаÑаÑиÑ
ÑиÑÑ, напÑÐ¸Ð¼ÐµÑ 1.123456) unrestricted float
float
Float64Array
5.0x10-324 to 1.8x10308 8 64-биÑное ÑиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой IEEE-ÑÑандаÑÑа (16 знаÑаÑиÑ
ÑиÑÑ, напÑимеÑ, 1.123...15) unrestricted double
double
СвойÑÑва
TypedArray.BYTES_PER_ELEMENT
ÐозвÑаÑÐ°ÐµÑ ÑÐ°Ð·Ð¼ÐµÑ ÑлеменÑа Ð´Ð»Ñ ÑазнÑÑ ÑипизиÑованнÑÑ Ð¼Ð°ÑÑивов.
СвойÑÑво "Ðлина", знаÑение коÑоÑого 0.
TypedArray.name
ÐозвÑаÑÐ°ÐµÑ ÑÑÑоковое Ð¸Ð¼Ñ ÐºÐ¾Ð½ÑÑÑÑкÑоÑа. ÐапÑимеÑ, "Int8Array".
get TypedArray[@@species]
ÐонÑÑÑÑкÑоÑ. ÐÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÑоизводнÑÑ Ð¾Ð±ÑекÑов.
TypedArray.prototype
ÐÑоÑоÑип Ð´Ð»Ñ TypedArray-обÑекÑов.
TypedArray.from()
СоздаÑÑ ÑипизиÑованнÑй маÑÑив из маÑÑивоподобного или пеÑеÑиÑлимого обÑекÑа. СмоÑÑиÑе Array.from()
.
TypedArray.of()
СоздаÑÑ Ð½Ð¾Ð²Ñй ÑипизиÑованнÑй маÑÑив Ñ Ð¿ÐµÑеменнÑм ÑиÑлом аÑгÑменÑов, из коÑоÑÑÑ
ÑоздаÑÑÑÑ Ð¼Ð°ÑÑив. СмоÑÑиÑе Array.of()
.
ÐÑе TypedArrays-маÑÑÐ¸Ð²Ñ Ð½Ð°ÑледÑÑÑ Ð¾Ñ TypedArray.prototype
.
Ðногие меÑодÑ, иÑполÑзÑемÑе в TypedArray, могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð´Ð¼ÐµÐ½ÐµÐ½Ñ, иÑполÑзÑÑ Ð¼ÐµÑодÑ, пÑиÑÑÑÑÑвÑÑÑие ÑÑеди ÑÑандаÑÑнÑÑ Ð² пÑоÑоÑипе Arrays. СледÑÑÑий кÑÑок Javascript-кода демонÑÑÑиÑÑеÑ, как Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе дополниÑÑ Ð½ÐµÐ´Ð¾ÑÑаÑÑие меÑÐ¾Ð´Ñ Typed Array.
var typedArrayTypes = [
Int8Array,
Uint8Array,
Uint8ClampedArray,
Int16Array,
Uint16Array,
Int32Array,
Uint32Array,
Float32Array,
Float64Array,
];
for (var k in typedArrayTypes)
for (var v in Array.prototype)
if (
Array.prototype.hasOwnProperty(v) &&
!typedArrayTypes[k].prototype.hasOwnProperty(v)
)
typedArrayTypes[k].prototype[v] = Array.prototype[v];
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4