一个TypedArray 对象描述一个底层的二进制数据缓存区的一个类似数组(array-like)视图。事实上,没有名为 TypedArray的全局对象,也没有一个名为的 TypedArray构造函数。相反,有许多不同的全局对象,下面会列出这些针对特定元素类型的类型化数组的构造函数。在下面的页面中,你会找到一些不管什么类型都公用的属性和方法。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
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参数时,一个内部数组缓冲区会被创建在内存中。该缓存区的大小是传入的length乘以数组中每个元素的字节数(BYTES_PER_ELEMENT),每个元素的值都为0。(译者注:每个元素的字节数是由具体的构造函数决定的,比如Int16Array的每个元素的字节数为2,Int32Array的每个元素的字节数为4)typedArray(比如Int32Array)作为参数时,typedArray被复制到一个新的类型数组。typedArray中的每个值会在复制到新的数组之前根据构造器进行转化。新的生成的类型化数组对象将会有跟传入的数组相同的长度(译者注:比如原来的typedArray.length==2,那么新生成的数组的length也是2,只是数组中的每一项进行了转化)当传入一个 object作为参数时,如同通过 TypedArray.from() 方法一样创建一个新的类型数组。
buffer参数,或者再另外加上可选参数byteOffset和length时,一个新的类型化数组视图将会被创建并可用于呈现传入的ArrayBuffer实例。byteOffset和length指定类型化数组视图暴露的内存范围,如果两者都未传入,那么整个buffer都会被呈现。如果仅仅忽略length,那么buffer中偏移byteOffset后剩下的buffer将会被呈现。ECMAScript 6定义TypeArray构造器作为所有的类型化数组构造器(Int8Array,Int16Array等)的原型.该构造器不会直接暴露:没有全局的%TypedArray%和TypeArray属性.只能通过使用类似Object.getPrototypeOf(Int8Array.prototype)的方式进行访问.所有的类型化数组构造器(Int8Array,Int16Array等)都会继承TypeArray构造器的通用属性和方法.此外,所有的类型化数组原型(Int8Array.prototype,Int16Array.prototype等)的原型都以TypeArray.prototype作为原型.
TypedArray构造器自身不是特别有用.调用或在一个表达式中使用它都会抛出一个TypeError异常,除非在支持通过继承创建对象的JS引擎下运行.但直到现在还没有这样的JS引擎出现,因此TypeArray仅仅是对所有的类型化类构造器(Int8Array,Int16Array等)的方法和属性进行polyfill的时候比较有用.
当创建一个TypedArray实例(例如:Int8Array)时,一个数组缓冲区将被创建在内存中,如果ArrayBuffer对象被当作参数传给构造函数将使用传入的ArrayBuffer代替。缓冲区的地址被存储在实例的内部属性中,所有的%TypedArray%.prototype上的方法例如set value和get value等都会操作在数组缓冲区上。
你可以参考使用标准数组索引数组中的元素的方法(其实就是方括号里面写下标).然而,原型链上面定义的索引属性(译者注:即用数字作为属性,例如Int16Array.prototype[0]=12;),在实例化的对象上面是获取不到该属性的(int16Array[0]==undefined).通过查询 ArrayBuffer 是找不到索引属性的.但您仍然可以使用命名属性(译者注:就是键不是数字的),就像所有对象一样。
// 设置和使用标准数组语法
var 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"
| 类型 | 大小(字节单位) | 描述 | Web IDL type | C语言中的等效类型 |
Int8Array |
1 | 8位二进制带符号整数 -2^7~(2^7) - 1 | byte | int8_t |
Uint8Array |
1 | 8位无符号整数 0~(2^8) - 1 | octet | uint8_t |
Int16Array |
2 | 16位二进制带符号整数 -2^15~(2^15)-1 | short |
int16_t |
Uint16Array |
2 | 16位无符号整数 0~(2^16) - 1 | unsigned short |
uint16_t |
Int32Array |
4 | 32位二进制带符号整数 -2^31~(2^31)-1 | long | int32_t |
Uint32Array |
4 | 32位无符号整数 0~(2^32) - 1 | unsigned int |
uint32_t |
Float32Array |
4 | 32位IEEE浮点数 | unrestricted float | float |
Float64Array |
8 | 64位IEEE浮点数 | unrestricted double | double |
TypedArray.BYTES_PER_ELEMENTTypedArray.nameget TypedArray[@@species]TypedArray.prototypeTypedArray.from()Array.from().TypedArray.of()Array.of().所有的类型化数组都是继承自TypedArray.prototype.
TypedArray.prototype.constructorTypedArray.prototype.buffer 只读 ArrayBuffer. 创建时已被固化,因此是只读的.TypedArray.prototype.byteLength 只读 ArrayBuffer读取的字节长度. 创建时已被固化,因此是只读的.TypedArray.prototype.byteOffset 只读 ArrayBuffer读取时的字节偏移量.创建时已被固化,因此是只读的.TypedArray.prototype.length 只读 TypedArray.prototype.copyWithin()Array.prototype.copyWithin().TypedArray.prototype.entries()Array Iterator 对象,该对象包含数组中每一个索引的键值对.参见 Array.prototype.entries().TypedArray.prototype.every()Array.prototype.every().TypedArray.prototype.fill()Array.prototype.fill().TypedArray.prototype.filter()Array.prototype.filter().TypedArray.prototype.find()undefined . 参见 Array.prototype.find().TypedArray.prototype.findIndex()Array.prototype.findIndex().TypedArray.prototype.forEach()Array.prototype.forEach().TypedArray.prototype.includes() Array.prototype.includes().TypedArray.prototype.indexOf()Array.prototype.indexOf().TypedArray.prototype.join()Array.prototype.join().TypedArray.prototype.keys()Array.prototype.keys().TypedArray.prototype.lastIndexOf()Array.prototype.lastIndexOf().TypedArray.prototype.map()Array.prototype.map().TypedArray.prototype.move() 未实现TypedArray.prototype.copyWithin().TypedArray.prototype.reduce()Array.prototype.reduce().TypedArray.prototype.reduceRight()reduce() 的执行方向相反). 参见Array.prototype.reduceRight().TypedArray.prototype.reverse()Array.prototype.reverse().TypedArray.prototype.set()TypedArray.prototype.slice()Array.prototype.slice().TypedArray.prototype.some()Array.prototype.some().TypedArray.prototype.sort()Array.prototype.sort().TypedArray.prototype.subarray()TypedArray.prototype.values()Array.prototype.values().TypedArray.prototype.toLocaleString()Array.prototype.toLocaleString().TypedArray.prototype.toString()Array.prototype.toString().TypedArray.prototype[@@iterator]()| 规范 | 状态 | 说明 |
|---|---|---|
| Typed Array Specification | Obsolete | Defined as TypedArray and ArrayBufferView interface with typed array view types. Superseded by ECMAScript 6. |
| ECMAScript 2015 (6th Edition, ECMA-262) TypedArray Objects |
Standard | Initial definition in an ECMA standard. Specified behaviour for indexed and named properties. Specified that new is required. |
| ECMAScript Latest Draft (ECMA-262) TypedArray Objects |
Draft |
| Desktop | Mobile | Server | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TypedArray | Chrome Full support 7 | Edge Full support Yes | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs Full support Yes |
| Constructor without arguments | Chrome ? | Edge ? | Firefox Full support 55 | IE Full support 10 | Opera ? | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 55 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? | nodejs ? |
| Indexed properties not consulting prototype | Chrome
Full support
Yes
| Edge ? | Firefox Full support 25 | IE
Full support
10
| Opera ? | Safari ? | WebView Android
Full support
Yes
| Chrome Android
Full support
Yes
| Edge Mobile ? | Firefox Android Full support 25 | Opera Android ? | Safari iOS ? | Samsung Internet Android Full support Yes | nodejs
?
|
| Iterable in constructor | Chrome ? | Edge ? | Firefox Full support 52 | IE Full support 10 | Opera ? | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 52 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? | nodejs Full support 4.0.0 |
| Named properties | Chrome Full support Yes | Edge ? | Firefox Full support 30 | IE Full support 10 | Opera ? | Safari ? | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile ? | Firefox Android Full support 30 | Opera Android ? | Safari iOS ? | Samsung Internet Android Full support Yes | nodejs ? |
TypedArray() without new throws | Chrome ? | Edge ? | Firefox Full support 44 | IE No support No | Opera ? | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 44 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? | nodejs Full support 0.12 |
BYTES_PER_ELEMENT | Chrome Full support 7 | Edge Full support Yes | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs Full support Yes |
buffer | Chrome Full support 7 | Edge Full support 14 | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs Full support Yes |
byteLength | Chrome Full support 7 | Edge Full support 14 | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs Full support Yes |
byteOffset | Chrome Full support 7 | Edge Full support 14 | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs Full support Yes |
copyWithin | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 34 | IE No support No | Opera Full support 36 | Safari No support No | WebView Android No support No | Chrome Android No support No | Edge Mobile ? | Firefox Android Full support 34 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No | nodejs Full support 4.0.0 |
entries | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera Full support 36 | Safari No support No | WebView Android No support No | Chrome Android Full support Yes | Edge Mobile ? | Firefox Android Full support 37 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android Full support Yes | nodejs Full support 0.12 |
every | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera Full support 36 | Safari No support No | WebView Android No support No | Chrome Android Full support Yes | Edge Mobile ? | Firefox Android Full support 37 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android Full support Yes | nodejs Full support 4.0.0 |
fill | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera Full support 36 | Safari No support No | WebView Android No support No | Chrome Android Full support Yes | Edge Mobile ? | Firefox Android Full support 37 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android Full support Yes | nodejs Full support 4.0.0 |
filter | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 38 | IE No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android Full support Yes | Edge Mobile ? | Firefox Android Full support 38 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android Full support Yes | nodejs Full support 4.0.0 |
find | Chrome Full support Yes | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android No support No | Edge Mobile ? | Firefox Android Full support 37 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No | nodejs Full support 4.0.0 |
findIndex | Chrome Full support Yes | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android No support No | Edge Mobile ? | Firefox Android Full support 37 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No | nodejs Full support 4.0.0 |
forEach | Chrome Full support Yes | Edge Full support 14 | Firefox Full support 38 | IE No support No | Opera ? | Safari Full support 10 | WebView Android No support No | Chrome Android Full support Yes | Edge Mobile ? | Firefox Android Full support 38 | Opera Android ? | Safari iOS ? | Samsung Internet Android Full support Yes | nodejs Full support 4.0.0 |
from | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 38 | IE No support No | Opera No support No | Safari Full support 10 | WebView Android No support No | Chrome Android No support No | Edge Mobile ? | Firefox Android Full support 38 | Opera Android No support No | Safari iOS Full support 10 | Samsung Internet Android No support No | nodejs Full support 4.0.0 |
includes | Chrome Full support 47 | Edge Full support 14 | Firefox Full support 43 | IE No support No | Opera Full support 34 | Safari Full support 10 | WebView Android No support No | Chrome Android Full support 47 | Edge Mobile ? | Firefox Android Full support 43 | Opera Android Full support 34 | Safari iOS Full support 10 | Samsung Internet Android Full support 5.0 | nodejs
Full support
6.0.0
|
indexOf | Chrome Full support 45 | Edge Full support 14 | Firefox
Full support
37
| IE No support No | Opera Full support 32 | Safari No support No | WebView Android No support No | Chrome Android Full support 45 | Edge Mobile Full support Yes | Firefox Android
Full support
37
| Opera Android Full support 32 | Safari iOS No support No | Samsung Internet Android Full support 5.0 | nodejs Full support 4.0.0 |
join | Chrome Full support Yes | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 37 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android Full support Yes | nodejs Full support 4.0.0 |
keys | Chrome Full support Yes | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera No support No | Safari Full support 10 | WebView Android No support No | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 37 | Opera Android No support No | Safari iOS Full support 10 | Samsung Internet Android Full support Yes | nodejs Full support 0.12 |
lastIndexOf | Chrome Full support Yes | Edge Full support 14 | Firefox
Full support
37
| IE No support No | Opera Full support Yes | Safari Full support 10 | WebView Android No support No | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android
Full support
37
| Opera Android Full support Yes | Safari iOS Full support 10 | Samsung Internet Android Full support Yes | nodejs Full support 4.0.0 |
length | Chrome Full support 7 | Edge Full support 14 | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs Full support Yes |
map | Chrome Full support Yes | Edge Full support 14 | Firefox Full support 38 | IE No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 38 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android Full support Yes | nodejs Full support 4.0.0 |
move | Chrome No support No | Edge No support No | Firefox
No support
16 — 34
| IE No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android No support No | Edge Mobile No support No | Firefox Android
No support
16 — 34
| Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No | nodejs No support No |
name | Chrome Full support 7 | Edge Full support Yes | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs Full support Yes |
of | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 38 | IE No support No | Opera No support No | Safari No support No | WebView Android No support No | Chrome Android No support No | Edge Mobile ? | Firefox Android Full support 38 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No | nodejs Full support 4.0.0 |
prototype | Chrome Full support 7 | Edge Full support Yes | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs Full support Yes |
reduce | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera Full support 32 | Safari Full support 10 | WebView Android ? | Chrome Android ? | Edge Mobile Full support Yes | Firefox Android Full support 37 | Opera Android No support No | Safari iOS Full support 10 | Samsung Internet Android ? | nodejs Full support 4.0.0 |
reduceRight | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera Full support 32 | Safari Full support 10 | WebView Android ? | Chrome Android ? | Edge Mobile Full support Yes | Firefox Android Full support 37 | Opera Android No support No | Safari iOS Full support 10 | Samsung Internet Android ? | nodejs Full support 4.0.0 |
reverse | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera Full support 32 | Safari Full support 10 | WebView Android ? | Chrome Android ? | Edge Mobile Full support Yes | Firefox Android Full support 37 | Opera Android No support No | Safari iOS Full support 10 | Samsung Internet Android ? | nodejs Full support 4.0.0 |
set | Chrome Full support 7 | Edge Full support 14 | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs ? |
slice | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 38 | IE No support No | Opera ? | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 38 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? | nodejs Full support 4.0.0 |
some | Chrome Full support 45 | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera Full support 32 | Safari Full support 10 | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 37 | Opera Android No support No | Safari iOS Full support 10 | Samsung Internet Android ? | nodejs Full support 4.0.0 |
sort | Chrome Full support Yes | Edge Full support 14 | Firefox Full support 46 | IE No support No | Opera Full support Yes | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 46 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? | nodejs Full support 4.0.0 |
subarray | Chrome Full support 7 | Edge Full support 14 | Firefox Full support 4 | IE Full support 10 | Opera Full support 11.6 | Safari Full support 5.1 | WebView Android Full support 4 | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support 11.6 | Safari iOS Full support 4.2 | Samsung Internet Android Full support Yes | nodejs Full support 0.12 |
toLocaleString | Chrome Full support Yes | Edge ? | Firefox Full support 51 | IE Full support 10 | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile ? | Firefox Android Full support 51 | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes | nodejs ? |
toString | Chrome Full support Yes | Edge ? | Firefox Full support 51 | IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile ? | Firefox Android Full support 51 | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes | nodejs ? |
values | Chrome Full support Yes | Edge Full support 14 | Firefox Full support 37 | IE No support No | Opera Full support 26 | Safari Full support 10 | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 37 | Opera Android Full support Yes | Safari iOS Full support 10 | Samsung Internet Android Full support Yes | nodejs Full support 0.12 |
@@iterator | Chrome Full support Yes | Edge ? | Firefox
Full support
36
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile ? | Firefox Android
Full support
36
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes | nodejs Full support 0.12 |
@@species | Chrome Full support Yes | Edge ? | Firefox Full support 48 | IE No support No | Opera ? | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 48 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? | nodejs
Full support
6.5.0
|
从ECMAScript 2015 (ES6)开始,TypedArray 构造函数使用的时候必须要使用new.从现在开始不使用new调用TypedArray构造函数将会抛出异常TypeError
var dv = Int8Array([1, 2, 3]);
// TypeError: 不使用new调用内置的Int8Array构造函数是被禁止的
var dv = new Int8Array([1, 2, 3]);