TypeError: invalid arguments

错误提示

TypeError: invalid arguments (Firefox)

错误类型

TypeError

哪里出错了?

类型化数组(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]

相关内容