找出什么是类型数组以及如何使用它们
JavaScript Provides 8 类型数组类型:
Int8Array
8位带符号整数的数组Int16Array
16位带符号整数的数组Int32Array
32位有符号整数的数组Uint8Array
8位无符号整数数组Uint16Array
16位无符号整数的数组Uint32Array
32位无符号整数的数组Float32Array
32位浮点数的数组Float64Array
64位浮点数的数组
他们都是ArrayBufferView
实例。
类型化数组本质上是一个视图ArrayBuffer
,其中每个项目的大小和类型均相同。
DataView
是ArrayBuffer的另一个视图,但是在这种情况下,数组中的项目可以具有不同的大小和类型。
这是一个如何创建一个8位带符号整数数组的示例:
const a = new Int8Array()
您可以预分配n个字节:
const bytes = 1024
const a = new Int8Array(bytes)
主要用途是允许查看ArrayBuffer,它本身是不透明的(我们无法检查其内容)。
我们的操作方法如下:
//we got this `buffer` ArrayBuffer
const a = new Int8Array(buffer)
这些类型化的数组类似于数组,因此现在我们可以通过常用的数组访问技术检查缓冲区的内容,并且可以访问许多方法和属性,包括map()
,reduce()
等等。
类型数组的主要用例是与WebGL,网络音频或者画布API。一些WebGL函数期望使用类型化数组,因为它们比常规JavaScript数组具有更高的性能。
要记住的一件事是类型数组不允许我们控制字节序:它使用平台的字节顺序。总的来说,这很好,因为我们所说的主要用例是使用多媒体API之一在本地使用数组。而且,由于英特尔使用该约定,因此大多数消费类计算机都使用低端字节序。但是,如果在使用大字节序的系统上传输类型数组的数据,则数据可能编码错误,因此无效。
如果您需要这种对字节序的控制,请使用资料检视反而。
免费下载我的JavaScript初学者手册
更多浏览器教程:
- HTML5提供了一些有用的技巧
- 我如何使基于CMS的网站脱机工作
- 渐进式Web应用程序完整指南
- 提取API
- 推送API指南
- 频道消息传递API
- 服务人员教程
- 缓存API指南
- 通知API指南
- 深入IndexedDB
- Selectors API:querySelector和querySelectorAll
- 通过延迟和异步有效地加载JavaScript
- 文档对象模型(DOM)
- Web存储API:本地存储和会话存储
- 了解HTTP Cookies的工作原理
- 历史API
- WebP图像格式
- XMLHttpRequest(XHR)
- 深入的SVG教程
- 什么是数据网址
- 学习网络平台的路线图
- CORS,跨域资源共享
- 网络工作者
- requestAnimationFrame()指南
- 什么是Doctype
- 使用DevTools控制台和控制台API
- 语音合成API
- 如何在纯JavaScript中等待DOM ready事件
- 如何将类添加到DOM元素
- 如何遍历来自querySelectorAll的DOM元素
- 如何从DOM元素中删除类
- 如何检查DOM元素是否具有类
- 如何更改DOM节点值
- 如何将click事件添加到从querySelectorAll返回的DOM元素列表中
- WebRTC,实时Web API
- 如何在JavaScript中获取元素的滚动位置
- 如何替换DOM元素
- 如何只接受输入文件字段中的图像
- 为什么要使用浏览器的预览版?
- Blob对象
- 文件对象
- FileReader对象
- FileList对象
- ArrayBuffer
- ArrayBufferView
- URL对象
- 类型数组
- DataView对象
- BroadcastChannel API
- Streams API
- FormData对象
- 导航器对象
- 如何使用地理位置API
- 如何使用getUserMedia()
- 如何使用拖放API
- 如何在网页上滚动
- 在JavaScript中处理表单
- 键盘事件
- 鼠标事件
- 触摸事件
- 如何从DOM元素中删除所有子级
- 如何使用原始Javascript创建HTML属性
- 如何检查是否使用JavaScript选中了复选框?
- 如何使用JavaScript复制到剪贴板
- 如何使用JavaScript禁用按钮
- 如何在浏览器中使页面可编辑
- 如何使用URLSearchParams在JavaScript中获取查询字符串值
- 如何一次删除页面上的所有CSS
- 如何使用insertAdjacentHTML
- Safari,退出前警告
- 如何使用JavaScript将图像添加到DOM
- 如何重设表格
- 如何使用Google字体