当前位置:首页 > 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实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js实现点击显示和隐藏

js实现点击显示和隐藏

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

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…