错误提示
TypeError: invalid arguments (Firefox)
错误类型
哪里出错了?
类型化数组(Typed array) 的构造器可以通过接收以下类型的参数中的一种
- 表示长度的数字,
- 另外一个类型化数组,
- 类数组对象,
- 可迭代对象,
- 一个
ArrayBuffer
对象
来创建一个新的类型化数组。其他类型的构造器参数都无法创建合法的类型化数组。
示例
类型化数组——例如 Uint8Array
——无法通过字符串创建。实际上,字符串根本不能出现在类型化数组中。
var ta = new Uint8Array("nope"); // TypeError: invalid arguments
创建一个合法的 Uint8Array
对象的不同方式:
// From a length var uint8 = new Uint8Array(2); uint8[0] = 42; console.log(uint8[0]); // 42 console.log(uint8.length); // 2 console.log(uint8.BYTES_PER_ELEMENT); // 1 // From an array var arr = new Uint8Array([21,31]); console.log(arr[1]); // 31 // From another TypedArray var x = new Uint8Array([21, 31]); var y = new Uint8Array(x); console.log(y[0]); // 21 // From an ArrayBuffer var buffer = new ArrayBuffer(8); var z = new Uint8Array(buffer, 1, 4); // From an iterable var iterable = function*(){ yield* [1,2,3]; }(); var uint8 = new Uint8Array(iterable); // Uint8Array[1, 2, 3]