jsarraybufferdaya释放_JavaScript ArrayBuffer浅析

jsarraybufferdaya释放_JavaScript ArrayBuffer浅析时隔一年半 再次来到博客园 回首刚接触前端时所写的两篇随笔 无法直视啊 简介 ArrayBuffer 又称类型化数组 javascript 数组 Array 长什么样子 相信大家都清楚

大家好,我是讯享网,很高兴认识大家。

时隔一年半,再次来到博客园。回首刚接触前端时所写的两篇随笔,无法直视啊~

----------------------------------------------------------------------------♠

简介:

ArrayBuffer又称类型化数组。

javascript数组(Array)长什么样子,相信大家都清楚,那么我说说差别应该就可以了解这究竟是个什么了!

数组里面可以放数字、字符串、布尔值以及对象和数组等,ArrayBuffer放0和1组成的二进制数据

数组放在堆中,ArrayBuffer则把数据放在栈中(所以取数据时后者快)

ArrayBuffer初始化后固定大小,数组则可以自由增减。(准确的说,视图才应该跟数组来比较这个特点)

构造函数:

//new ArrayBuffer(Bytelength);

var arraybuffer = new ArrayBuffer(8);//类方法ArrayBuffer.isView() 判断某对象是否为 视图(这是什么?往下看)

var int8a = newInt8Array(arraybuffer);

ArrayBuffer.isView(int8a)//return true

//类属性ArrayBuffer.length 默认值1,暂未发现用处

ArrayBuffer.length //return 1

//返回的对象具有byteLength属性 值为参数Bytelength

arraybuffer.byteLength //return 8

如上所诉:实例化一个对象的时候,仅需要传入一个参数,即字节数。

字节(Byte):存储空间的基本计量单位。一个字节等于8位(bit),每一位用0或1表示。

如下为两个字节(16个格子):

1

0

1

1

0

0

0

1

0

1

0

0

1


讯享网

0

1

0

视图:

ArrayBuffer对象并没有提供任何读写内存的方法,而是允许在其上方建立“视图”,从而插入与读取内存中的数据。如上:我们在内存中分配了16个格子也就是两个字节,如果我们要划分出A视图与B视图来瓜分这16个格子的话,代码是这样的:

var arraybuffer = new ArrayBuffer(8);var aView = new Int8Array(arraybuffer,0,1);var bView = new Int8Array(arraybuffer,1,1);

aView[0] = 1; //二进制00000001

bView[0] = 2; //二进制00000010

格子变成这样了:

0

0

0

0

0

0

0

1

0

0

0

0

0

0

1

0

前8位表示数字1,后8位表示数字2

视图类型

视图类型

数据类型

占用位数

占用字节

有无符号

Int8A

小讯
上一篇 2025-01-29 08:18
下一篇 2025-03-27 16:09

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/43064.html