JavaScript标准内置对象:ArrayBuffer - Web前端
作者:98wpeu发布时间:2026-09-10分类:网页前端技术浏览:2

ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区。
它是一个字节数组,通常在其他语言中称为“byte Array”。
你不能直接操作 arrayBuffer 的内容,而是要通过类型数组对象或 dataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。
// create an ArrayBuffer with a size in bytes const buffer = new ArrayBuffer(8); console.log(buffer.bytelength); // expected output: 8
输出结果:
8
语法
new ArrayBuffer(length)
参数
length要创建的
ArrayBuffer的大小,单位为字节。
返回值
一个指定大小的 ArrayBuffer 对象,其内容被初始化为 0。
异常
如果 length 大于 Number.MAX_SAFE_intEGER(>= 2 ** 53)或为负数,则抛出一个 RangeError 异常。
描述
ArrayBuffer 构造函数用来创建一个指定字节长度的 ArrayBuffer 对象。
以现有数据获取 ArrayBuffer
从 base64 字符串
从本地文件
属性
ArrayBuffer.lengthArrayBuffer 构造函数的 length 属性,其值为1。
ArrayBuffer.prototype.byteLength只读属性,表示
ArrayBuffer的byte的大小,在ArrayBuffer构造完成时生成,不可改变。
get ArrayBuffer[@@specIEs]返回 ArrayBuffer 的构造函数。
ArrayBuffer.PRototype通过 ArrayBuffer 的原型对象可以为所有 ArrayBuffer 对象添加属性。
方法
ArrayBuffer.isView(arg)如果参数是 ArrayBuffer 的视图实例则返回
true,例如 类型数组对象 或DataView对象;否则返回false。ArrayBuffer.transfer(oldBuffer [, newByteLength])返回一个新的 ArrayBuffer 对象,其内容取自
oldBuffer中的数据,并且根据newByteLength的大小对数据进行截取或补 0。
ArrayBuffer 实例
所有 ArrayBuffer 实例都会从 ArrayBuffer.prototype 继承属性和方法。
属性
ArrayBuffer.prototype.constructor
指定函数,它创建一个对象的原型。其初始值是标准ArrayBuffer内置构造函数。
ArrayBuffer.prototype.byteLength只读数组的字节大小。在数组创建时确定,并且不可变更。只读。
方法
ArrayBuffer.prototype.slice()返回一个新的
ArrayBuffer,它的内容是这个ArrayBuffer的字节副本,从begin(包括),到end(不包括)。如果begin或end是负数,则指的是从数组末尾开始的索引,而不是从头开始。
ArrayBuffer.slice()和
ArrayBuffer.prototype.slice()功能相同。
示例
下面的例子创建了一个 8 字节的缓冲区,并使用一个 Int32Array 来引用它:
var buffer = new ArrayBuffer(8); var view = new Int32Array(buffer);
规范
| Specification | Status | Comment |
|---|---|---|
| Typed Array Specification | Obsolete | 已被 ECMAScript 6 中的 ArrayBuffer 取代 |
| ECMAScript 2015 (6th Edition, ECMA-262) ArrayBuffer | Standard | 在 ECMA 标准中的初始定义。规定了必须通过 new 来调用构造函数 |
| ECMAScript (ECMA-262) ArrayBuffer | Living Standard |
相关推荐
- JavaScript标准内置对象:AggregateError - Web前端
- 深入了解JavaScript标准内置对象:JSON.stringify() - Web前端
- Google:这是造成我们全球范围内严重停电的原因 - Web前端
- Linux Mint新版本:Linux Mint 20.1 Beta发布 - Web前端
- Firefox推出“网络分区”作为一种新的反跟踪防御 - Web前端
- 介绍JS里创建新的异步函数对象:AsyncFunction - Web前端
- 苹果,谷歌,微软和Mozilla禁止哈萨克斯坦的MitM HTTPS证书 - Web前端
- JS内置对象TypeError(类型错误):用来表示值的类型非预期类型时发生的错误 - Web前端
- 了解Microsoft Azure:云服务业务指南 - Web前端
- Google具有新功能和隐私增强功能的Android 11 - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 9在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


