当前位置:首页 > JavaScript

js实现byte数组

2026-03-16 04:47:56JavaScript

创建 Byte 数组

在 JavaScript 中,可以通过 ArrayBufferTypedArray(如 Uint8Array)来处理二进制数据。ArrayBuffer 表示固定长度的二进制数据缓冲区,而 TypedArray 提供了对缓冲区的视图。

// 创建一个长度为 4 的 ArrayBuffer
const buffer = new ArrayBuffer(4);

// 通过 Uint8Array 视图操作 buffer
const byteArray = new Uint8Array(buffer);
byteArray[0] = 0x12; // 十六进制赋值
byteArray[1] = 34;   // 十进制赋值
byteArray[2] = 0xAB;
byteArray[3] = 255;

从字符串生成 Byte 数组

使用 TextEncoder 可以将字符串编码为 UTF-8 字节数组:

js实现byte数组

const encoder = new TextEncoder();
const byteArray = encoder.encode("Hello, World!");
console.log(byteArray); // Uint8Array 格式的字节数组

从 Base64 生成 Byte 数组

通过 atob 解码 Base64 字符串,再转换为字节数组:

const base64Str = "SGVsbG8sIFdvcmxkIQ==";
const binaryStr = atob(base64Str);
const byteArray = new Uint8Array(binaryStr.length);

for (let i = 0; i < binaryStr.length; i++) {
    byteArray[i] = binaryStr.charCodeAt(i);
}

从十六进制字符串生成 Byte 数组

将十六进制字符串(如 "1A2B3C")转换为字节数组:

js实现byte数组

function hexToBytes(hexString) {
    const bytes = new Uint8Array(hexString.length / 2);
    for (let i = 0; i < bytes.length; i++) {
        bytes[i] = parseInt(hexString.substr(i * 2, 2), 16);
    }
    return bytes;
}

const byteArray = hexToBytes("1A2B3C");

字节数组转换为其他格式

转为十六进制字符串

function bytesToHex(byteArray) {
    return Array.from(byteArray)
        .map(byte => byte.toString(16).padStart(2, '0'))
        .join('');
}

const hexStr = bytesToHex(new Uint8Array([0x1A, 0x2B, 0x3C]));

转为 Base64

function bytesToBase64(byteArray) {
    let binaryStr = '';
    byteArray.forEach(byte => {
        binaryStr += String.fromCharCode(byte);
    });
    return btoa(binaryStr);
}

const base64Str = bytesToBase64(new Uint8Array([72, 101, 108, 108, 111]));

注意事项

  • ArrayBuffer 是只读的底层二进制数据,需要通过 TypedArrayDataView 操作。
  • 在 Node.js 环境中,可以使用 Buffer 类替代 Uint8Array
  • 大端序(Big-Endian)或小端序(Little-Endian)处理需使用 DataView

标签: 数组js
分享给朋友:

相关文章

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

vue数组怎么实现

vue数组怎么实现

Vue 数组操作方法 在 Vue 中操作数组时,需要遵循响应式原则,确保视图能正确更新。以下是常见的数组操作方法: 使用变异方法 Vue 对数组的变异方法进行了封装,这些方法会触发视图更新: pu…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…