Typed Arrays 是 ECMAScript6 中新增的数据类型,它们提供了一个类数组对象,存储固定类型、固定长度的数据。在 ES7 中,这个功能得到了扩展,增加了更多的构造函数和方法,使得 Typed Arrays 更加丰富、强大。
基础知识
在 ES7 中,Typed Arrays 的构造函数如下:
- Int8Array:8 bits 有符号整数;
- Uint8Array:8 bits 无符号整数;
- Int16Array:16 bits 有符号整数;
- Uint16Array:16 bits 无符号整数;
- Int32Array:32 bits 有符号整数;
- Uint32Array:32 bits 无符号整数;
- Float32Array:32 bits 浮点数;
- Float64Array:64 bits 浮点数。
创建 Typed Arrays 的方法有两种:
// 使用构造函数 const buffer = new ArrayBuffer(16); const ints = new Int32Array(buffer); ints[0] = 42; // 使用 from 静态方法 const values = [1, 2, 3, 4, 5]; const typedArray = Int32Array.from(values);
在创建 Typed Arrays 时,需要指定一个 ArrayBuffer(缓冲区)的长度,然后构造一个 TypedArray。使用 from 方法时,可以直接将一个数组转换成 TypedArray,无需缓冲区。
新增方法
find 和 findIndex
find 和 findIndex 方法用于查找符合条件的第一个元素,并返回该元素或者索引。这两个方法的参数是一个回调函数,用于判断是否符合条件。
const data = new Float32Array([1, 2, 3, 4, 5]); const result = data.find((v) => v > 3); // 4 const index = data.findIndex((v) => v < 2); // 0
includes
includes 方法用于判断当前 TypedArray 是否包含指定元素。它的参数是一个要查找的值和一个可选的起始值。如果找到则返回 true,否则返回 false。
const data = new Int32Array([1, 2, 3, 4, 5]); const result = data.includes(3); // true
fill
fill 方法用于将整个 TypedArray 或部分内容填充为指定值。它的参数是要填充的值,以及可选的起始位置、结束位置。
const data = new Int32Array(5); data.fill(42); // [42, 42, 42, 42, 42] data.fill(7, 2, 4); // [42, 42, 7, 7, 42]
copyWithin
copyWithin 方法用于将 TypedArray 中指定的元素复制到其他位置。它的参数是目标位置、起始位置、结束位置。
const data = new Int32Array([1, 2, 3, 4, 5]); data.copyWithin(2, 0, 2); // [1, 2, 1, 2, 5]
总结
ES7 中新增的 TypedArrays 功能更加强大,提供了更多的构造函数和方法,使得处理和操作定长数据更加方便、高效。对于前端开发者而言,掌握这些知识点不仅有助于提升开发效率,也有助于写出更高质量的代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/646d9a0c968c7c53b0c4024a