TypedArray & ArrayBuffer All In One
TypedArray & ArrayBuffer All In One
TypedArray
bytes size
Table
Type | Each element size in bytes |
---|---|
Int8Array | 1 |
Uint8Array | 1 |
Uint8ClampedArray | 1 |
Int16Array | 2 |
Uint16Array | 2 |
Int32Array | 4 |
Uint32Array | 4 |
Float32Array | 4 |
Float64Array | 8 |
1 字节(1 bytes) === 8位
8位 占用 1 字节(1 bytes)
16位 占用 2 字节(2 bytes)
32位 占用 4 字节(4 bytes)
64位 占用 8 字节(8 bytes)
TypedArray
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
/*
Type Each element size in bytes
Int8Array 1
Uint8Array 1
Uint8ClampedArray 1
Int16Array 2
Uint16Array 2
Int32Array 4
Uint32Array 4
Float32Array 4
Float64Array 8
*/
// 1 字节(1 bytes) === 8位
// 8位 占用 1 字节(1 bytes)
// 16位 占用 2 字节(2 bytes)
// 32位 占用 4 字节(4 bytes)
// 64位 占用 8 字节(8 bytes)
// create a TypedArray with a size in bytes
const typedArray1 = new Int8Array(8);
typedArray1[0] = 32;
const typedArray2 = new Int8Array(typedArray1);
typedArray2[1] = 42;
console.log(typedArray1);
// [32, 0, 0, 0, 0, 0, 0, 0]
console.log(typedArray2);
// [32, 42, 0, 0, 0, 0, 0, 0]
ArrayBuffer
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer
const buffer = new ArrayBuffer(8);
// ⚠️ buffer 不可以直接读取, 必须创建对应的 view
const view = new Int32Array(buffer);
demos
TypedArray bugs
// ❌ 先 map, 后解构赋值,出现了超出 TypedArray 大小限制 bug
const arr = [...new Uint8Array(300).map((item, i) => i));
arr[255];
//255
arr[256];
// 0 ❌
// ✅ 先解构赋值, 后 map,避免出现潜在的 bug
const arr = [...new Uint8Array(300)].map((item, i) => i);
arr[255];
//255
arr[256];
// 256 ✅
https://www.freecodecamp.org/learn/coding-interview-prep/data-structures/typed-arrays
MarkDown Table
| Type | Each element size in bytes |
|---|---|
| Int8Array | 1 |
| Uint8Array | 1 |
| Uint8ClampedArray | 1 |
| | |
| Int16Array | 2 |
| Uint16Array | 2 |
| | |
| Int32Array | 4 |
| Uint32Array | 4 |
| | |
| Float32Array | 4 |
| Float64Array | 8 |
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#tables
https://www.tablesgenerator.com/markdown_tables
refs
©xgqfrms 2012-2025
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/13576577.html
未经授权禁止转载,违者必究!
标签:
ArrayBuffer
, Array
, TypedArray
, Uint8Array
, MarkDown Table
, Uint8ClampedArray
, 解构赋值
, Markdown
, JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2019-08-28 js 数据劫持 (应用场景) All In One
2019-08-28 how to close mac finder auto open folder
2019-08-28 HTTP2 详解 All In One
2019-08-28 jsbridge 原理 & 通信原理
2019-08-28 数据埋点
2018-08-28 Linux shell commands man chmod All In One
2018-08-28 Linux bash command chmod & 777 & 755 & +x All In One