如何在不使用 eval() 的情况下编写 javascript 十六进制初始化程序?

How to write a javascript hex initializer without using eval()?

如果不使用 eval(),我不知道如何在 javascript 中执行以下操作,这对我来说有点过分了。

let sId = "12345678";
let buffer = new Uint8Array(4);
buffer[0] = eval('0x' + sId.substring(6, 8) + ";");
buffer[1] = eval('0x' + sId.substring(4, 6) + ";");
buffer[2] = eval('0x' + sId.substring(2, 4) + ";");
buffer[3] = eval('0x' + sId.substring(0, 2) + ";");

使用 Number 构造函数而不是 eval。

无论您使用 eval、Number() 还是文字,这些值都是相同的:

const sId = "12345678";

const testA = 0x78;
const testB = Number('0x' + sId.substring(6, 8));
const testC = eval('0x' + sId.substring(6, 8) + ";");

console.log(testA, testB, testC);

let sId = "12345678";
let buffer = new Uint8Array(4);
buffer[0] = Number('0x' + sId.substring(6, 8));
buffer[1] = Number('0x' + sId.substring(4, 6));
buffer[2] = Number('0x' + sId.substring(2, 4));
buffer[3] = Number('0x' + sId.substring(0, 2));

console.log(buffer);