[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/TypedArray [Back]  [Original]

TypedArray - JavaScript | MDN

MDN Web Docs

View in English Always switch to English

TypedArray

20157

TypedArray TypedArray TypedArray

// Create a TypedArray with a size in bytes
const typedArray1 = new Int8Array(8);
typedArray1[0] = 32;

const typedArray2 = new Int8Array(typedArray1);
typedArray2[1] = 42;

console.log(typedArray1);
// Expected output: Int8Array [32, 0, 0, 0, 0, 0, 0, 0]

console.log(typedArray2);
// Expected output: Int8Array [32, 42, 0, 0, 0, 0, 0, 0]

TypedArray %TypedArray% JavaScript TypedArray %TypedArray% TypedArray Object.getPrototypeOf(Int8Array)

TypedArray Int8Array ArrayBuffer ArrayBuffer %TypedArray%.prototype

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 -3.4E38 3.4E38 1.2E-38 4 32 IEEE 7 1.234567 unrestricted float float
Float64Array -1.8E308 1.8E308 5E-324 8 64 IEEE 16 1.23456789012345 unrestricted double double
BigInt64Array -263 263 - 1 8 64 bigint int64_t (signed long long)
BigUint64Array 0 264 - 1 8 64 bigint uint64_t (unsigned long long)

ArrayBuffer

  • Uint8ArrayUint16ArrayUint32Array BigUint64Array
  • Int8ArrayInt16ArrayInt32Array BigInt64Array
  • Float32Array Float64Array IEEE 754Number JavaScript Float64Array Float32Array 23 52 8 11 NaN
  • Uint8ClampedArray Uint8Array clamp 0 255

Int8ArrayUint8Array Uint8ClampedArray DataView

  • Uint8ClampedArray
  • Uint8ClampedArray 0 255 255 255 0 00.5 01.5 22.5 2
  • Float32Array 64 32 Math.fround()

TypedArray TypedArray TypedArray

undefined buffer

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer);

console.log(float32.byteLength); // 8
console.log(float32.length); // 2

buffer.resize(12);

console.log(float32.byteLength); // 12
console.log(float32.length); // 3

length buffer

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer, 0, 2);

console.log(float32.byteLength); // 8
console.log(float32.length); // 2
console.log(float32[0]); // 0, 

buffer.resize(12);

console.log(float32.byteLength); // 8
console.log(float32.length); // 2
console.log(float32[0]); // 0, 

buffer 0

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer, 0, 2);

buffer.resize(7);

console.log(float32.byteLength); // 0
console.log(float32.length); // 0
console.log(float32[0]); // undefined

buffer

js
buffer.resize(8);

console.log(float32.byteLength); // 8
console.log(float32.length); // 2
console.log(float32[0]); // 0 - 

buffer byteOffset

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });
const float32 = new Float32Array(buffer, 4);
// float32  4 
//  4 
buffer.resize(3);
console.log(float32.byteLength); // 0

new TypeError

js
new (Object.getPrototypeOf(Int8Array))();
// TypeError: Abstract class TypedArray not directly constructable

Int8Array BigInt64Array

js
new TypedArray()
new TypedArray(length)
new TypedArray(typedArray)
new TypedArray(object)

new TypedArray(buffer)
new TypedArray(buffer, byteOffset)
new TypedArray(buffer, byteOffset, length)

TypedArray

TypedArray new new TypeError

typedArray

TypedArray typedArray bigint TypeedArray typedArray bigint Int32Array bigint TypedArray BigInt64Array BigUint64ArraytypedArray bigint typedArray typedArray

object

TypedArray TypedArray.from()

length

BYTES_PER_ELEMENT 0 0

bufferbyteOffset length

ArrayBuffer SharedArrayBuffer byteOffset length byteOffset length buffer length byteOffset buffer

TypeArray

TypeError

  • typedArray bigint
  • typedArray buffer
RangeError

  • buffer length byteOffset
  • byteOffset 0 253 - 1
  • byteOffset + length * TypedArray.BYTES_PER_ELEMENT > buffer.byteLength

TypedArray TypedArray

TypedArray[Symbol.species]

TypedArray

TypedArray.BYTES_PER_ELEMENT

TypedArray

TypedArray TypedArray

TypedArray.from()

TypedArray Array.from()

TypedArray.of()

TypedArray Array.of()

TypedArray getter TypedArray

TypedArray.prototype.buffer

ArrayBuffer

TypedArray.prototype.byteLength

TypedArray.prototype.byteOffset

ArrayBuffer

TypedArray.prototype.length

TypedArray

TypedArray.prototype.BYTES_PER_ELEMENT

TypedArray

TypedArray TypedArray

TypedArray.prototype.at()

TypedArray.prototype.copyWithin()

Array.prototype.copyWithin()

TypedArray.prototype.entries()

/ Array.prototype.entries()

TypedArray.prototype.every()

true Array.prototype.every()

TypedArray.prototype.fill()

Array.prototype.fill()

TypedArray.prototype.filter()

true Array.prototype.filter()

TypedArray.prototype.find()

undefined Array.prototype.find()

TypedArray.prototype.findIndex()

-1 Array.prototype.findIndex()

TypedArray.prototype.findLast()

undefined Array.prototype.findLast()

TypedArray.prototype.findLastIndex()

-1 Array.prototype.findLastIndex()

TypedArray.prototype.forEach()

Array.prototype.forEach()

TypedArray.prototype.includes()

true false Array.prototype.includes()

TypedArray.prototype.indexOf()

-1 Array.prototype.indexOf()

TypedArray.prototype.join()

Array.prototype.join()

TypedArray.prototype.keys()

Array.prototype.keys()

TypedArray.prototype.lastIndexOf()

-1 Array.prototype.lastIndexOf()

TypedArray.prototype.map()

Array.prototype.map()

TypedArray.prototype.reduce()

reducer Array.prototype.reduce()

TypedArray.prototype.reduceRight()

reducer Array.prototype.reduceRight()

TypedArray.prototype.reverse()

Array.prototype.reverse()

TypedArray.prototype.set()

TypedArray.prototype.slice()

Array.prototype.slice()

TypedArray.prototype.some()

true Array.prototype.some()

TypedArray.prototype.sort()

Array.prototype.sort()

TypedArray.prototype.subarray()

TypedArray

TypedArray.prototype.values()

Array.prototype.values()

TypedArray.prototype.toLocaleString()

Array.prototype.toLocaleString()

TypedArray.prototype.toString()

Array.prototype.toString()

TypedArray.prototype[Symbol.iterator]()

ArrayBuffer

js
// Setting and getting using standard array syntax
const int16 = new Int16Array(2);
int16[0] = 42;
console.log(int16[0]); // 42

// Indexed properties on prototypes are not consulted (Fx 25)
Int8Array.prototype[20] = "foo";
new Int8Array(32)[20]; // 0
// even when out of bound
Int8Array.prototype[20] = "foo";
new Int8Array(8)[20]; // undefined
// or with negative integers
Int8Array.prototype[-1] = "foo";
new Int8Array(8)[-1]; // undefined

// Named properties are allowed, though (Fx 30)
Int8Array.prototype.foo = "bar";
new Int8Array(32).foo; // "bar"

TypedArray ArrayBuffer TypedArray

js
const i8 = Int8Array.of(1, 2, 3);
Object.freeze(i8);
// TypeError: Cannot freeze array buffer views with elements

byteOffset

TypedArray ArrayBuffer byteOffset BYTES_PER_ELEMENT

js
const i32 = new Int32Array(new ArrayBuffer(4), 1);
// RangeError: start offset of Int32Array should be a multiple of 4
js
const i32 = new Int32Array(new ArrayBuffer(4), 0);

byteLength

byteOffset ArrayBuffer TypedArray byteLength BYTES_PER_ELEMENT

js
const i32 = new Int32Array(new ArrayBuffer(3));
// RangeError: byte length of Int32Array should be a multiple of 4
js
const i32 = new Int32Array(new ArrayBuffer(4));

ECMAScript 2027 LanguageSpecification
# sec-typedarray-objects


Web Proxy Viewer  |  New URL  |  Original Page