微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

如果不使用 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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。