赞
踩
5. JS中所有数字,均使用双精度浮点数保存
类型化数组:用于优化多个数字的存储
使用方法跟普通数组一致 但是:
不能增加和删除数据,类型化数组的长度固定
一些返回数组的方法,返回的数组是同类型化的新数组
基础概念可参考以下连接
一个对象,用于存储一块固定内存大小的数据
- const buff = new ArrayBuffer(10)
- console.log(buff)
- const buff2 = buff.slice()
- console.log(buff2)
- const buff3 = buff.slice(3, 5)
- console.log(buff3)
- const view = new DataView(buff, 3, 4)
- console.log(view)
arg1 偏移量 arg2值
- view.setInt8(1, 3)
- const a = view.getInt8(1)
- console.log("查询偏移位置为1的数据:", a)
- console.log(view)
通常在需要混用多种存储格式时使用DataView
- const buff = new ArrayBuffer(10)//10个字节的内存
- const arr = new Int16Array(buff)
- arr[0] = 2344//操作了2个字节
- console.log(arr)
- <img src="./assets/dog.png" alt="" width="250" height="250" />
- <button onclick="change()">转换</button>
- <canvas height="250" width="250" id="cvs"></canvas>
- //把一个图像变成黑白,设置红绿蓝平均数即可
- function change () {
- const img = document.querySelector('img')
- const cvs = document.getElementById('cvs').getContext('2d')
- cvs.drawImage(img, 0, 0)
- const imageData = cvs.getImageData(0, 0, img.width, img.height)
- const data = imageData.data
- for (let i = 0; i < data.length; i += 4) {
- const red = imageData.data[i]
- const green = imageData.data[i + 1]
- const blue = imageData.data[i + 2]
- const avg = (red + green + blue) / 3
- data[i] = data[i + 1] = data[i + 2] = red
- }
- cvs.putImageData(imageData, 0, 0)
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。