ECMAScript 2017 (ES8) 引入 Int8Array 方法详解

阅读时长 12 分钟读完

在 ECMAScript 2017(ES8)中,JavaScript 引入了新的 TypedArray 类型 Int8Array,该类可用于存储 8 位有符号整数。

本篇文章将详细介绍 Int8Array 类及其方法,并提供示例代码以帮助读者更好地理解。

Int8Array 类

Int8Array 类是 TypedArray 类型之一,它继承了同样是 TypedArray 类型的 ArrayBuffer 类。

使用 Int8Array 类时,我们需要先创建一个 ArrayBuffer,再将其传递给 Int8Array 的构造函数,这样就可以在 ArrayBuffer 上创建一个 Int8Array 数组:

由于 Int8Array 存储的是有符号整数,因此每个元素的值的范围为 -128 到 127。

创建 Int8Array 数组的方式

除了前面提到的以 ArrayBuffer 作为参数创建的方式外,还有以下两种方式可以创建 Int8Array 数组:

  1. 直接创建指定长度的 Int8Array 数组:

这种方式等同于以包含相同长度的 ArrayBuffer 作为参数创建 Int8Array 数组。

  1. 通过数组或可迭代对象创建 Int8Array 数组:
-- -------------------- ---- -------
----- ----- - --- -- -- -- -- -- -- ---
----- --------- - --- -----------------

-- --------- --------- --
----- -------- - -
  -------------------- -
    ----- --
    ----- --
    ----- --
    ----- --
    ----- --
    ----- --
    ----- --
    ----- --
  -
--
----- --------- - --- --------------------

在通过数组或可迭代对象创建 Int8Array 数组时,如果某个元素的值超出 -128 到 127 的范围,则会被截断为符合该范围的值。

获取 Int8Array 数组中的元素

Int8Array 数组的元素可以通过索引访问,与普通数组相同:

设置 Int8Array 数组中的元素

我们可以通过索引设置 Int8Array 数组中的元素:

Int8Array 方法

除了普通数组所支持的方法外,Int8Array 类还提供了以下方法:

1. Int8Array.BYTES_PER_ELEMENT

该属性表示 Int8Array 数组中每个元素的字节大小,其值为 1。

2. Int8Array.from()

该静态方法可用于创建一个新的 Int8Array 数组,该数组中的元素与传入的参数相关。

-- -------------------- ---- -------
-- ------ --------- --
----- ----- - --- -- -- -- -- -- -- ---
----- --------- - ----------------------

-- --------- --------- --
----- -------- - -
  -------------------- -
    ----- --
    ----- --
    ----- --
    ----- --
    ----- --
    ----- --
    ----- --
    ----- --
  -
--
----- --------- - -------------------------

-- -- --- ----------
----- ----- - --- -- -- -- -- -- -- ---
----- --------- - --------------------- - -- - - ---

在使用 map 函数处理数组中的元素时,需要注意传入 map 函数的参数应该是一个数字类型,否则会产生 NaN 或 Infinity。

3. Int8Array.of()

该静态方法可用于创建一个新的 Int8Array 数组,该数组中的元素与传入的参数一一对应。

4. Int8Array.prototype.copyWithin()

该方法可用于将数组中的一部分元素拷贝到另一部分元素位置上。

5. Int8Array.prototype.every()

该方法可用于判断数组中的所有元素是否满足指定条件。

6. Int8Array.prototype.fill()

该方法可用于将数组中的全部或部分元素替换为指定值。

7. Int8Array.prototype.filter()

该方法可用于筛选数组中符合条件的元素。

8. Int8Array.prototype.find()

该方法可用于查找数组中第一个符合条件的元素,并返回该元素。

9. Int8Array.prototype.findIndex()

该方法可用于查找数组中第一个符合条件的元素的下标,并返回该下标。

10. Int8Array.prototype.forEach()

该方法可用于遍历数组中的每个元素,并对其进行操作。

11. Int8Array.prototype.includes()

该方法可用于判断数组中是否包含某个元素。

12. Int8Array.prototype.indexOf()

该方法可用于查找数组中指定元素的第一个下标。

13. Int8Array.prototype.join()

该方法可用于将数组中的所有元素连接为一个字符串。

14. Int8Array.prototype.lastIndexOf()

该方法可用于查找数组中指定元素的最后一个下标。

15. Int8Array.prototype.map()

该方法可用于对数组中的每个元素进行操作,并返回一个新的数组。

16. Int8Array.prototype.reduce()

该方法可用于对数组中的所有元素进行累加或其他类似的操作,并返回一个累加后的值。

17. Int8Array.prototype.reduceRight()

该方法类似于 reduce() 方法,但是遍历数组的顺序是从右往左。

18. Int8Array.prototype.reverse()

该方法可用于将数组中的所有元素翻转。

19. Int8Array.prototype.set()

该方法可用于将一个数组中的元素复制到另一个 Int8Array 数组中。

20. Int8Array.prototype.slice()

该方法可用于创建一个新的 Int8Array 数组,该数组中包含了旧数组中指定范围内的元素。

21. Int8Array.prototype.some()

该方法可用于判断数组中是否有符合条件的元素。

22. Int8Array.prototype.sort()

该方法可用于对数组中的元素进行排序。

23. Int8Array.prototype.subarray()

该方法可用于创建一个新的 Int8Array 数组,该数组与旧数组共享同一个 ArrayBuffer。

总结

本篇文章详细介绍了 Int8Array 类型及其方法,包括了数组的创建、访问、修改、方法的使用以及示例代码。

Int8Array 类型的引入使得 JavaScript 的类型支持更加丰富,也为开发者提供了更多的选择和可能性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6474751e968c7c53b01d53b4

纠错
反馈