如何在 JavaScript 中将 ASCII 转换为十六进制

how to convert ASCII to Hexadecimal in JavaScript?

本文关键字:转换 十六进制 ASCII 中将 JavaScript      更新时间:2023-09-26

首先,我不太确定ASCII是什么(我已经用谷歌搜索过它,但没有运气理解),无论如何,我正在为学习者解决一个练习并遇到了这个问题,答案是以下代码。

我发现这段代码中有一些难以理解的语句和概念

,如下所示:
  1. 为 For 循环var n = 0, l = str.length 2 次初始化的目的是什么?

  2. 什么是charCodeAt(n)

    我了解到它是 unicode,但这对这个函数有什么影响,n 与 charCodeAt 有什么关系,以及两者都与十六进制到 ASCII 的转换有什么关系?

  3. 为什么.toString()分配了 16 的值。

    在我看来,它必须与十六进制因此 16 有关,但它与将十六进制转换为 ASCII 有什么关系?

.

function ascii_to_hexa(str)  
{  
  var arr1 = [];  
  for (var n = 0, l = str.length; n < l; n ++)   
  {  
    var hex = Number(str.charCodeAt(n)).toString(16);  
    arr1.push(hex);  
  }  
  return arr1.join('');  
}
var n = 0, l = str.length; n < l; n ++

n小于字符串长度时执行循环 - 基本上,遍历字符串中的每个字符。当你到达字符串的末尾时,停止循环。

n 是字符串中的字符,其中循环位于 (1, 2, 3, ...),因此是要转换的字符。

16 是计算字符值时使用的数字基数。它被称为基数。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString

  1. For 循环的 2 个初始化(var n = 0, l = str.length)的目的是什么?

    变量l只是存储str.length的值。你可以写for (var n = 0; n < str.length; n ++),它也是有效的。

  2. 什么是charCodeAt(n),我了解到它是Unicode,但是这对这个函数有什么影响,n与charCodeAt有什么关系,以及两者都与十六进制到ASCII对话有什么关系?

    charCodeAt您可以自己阅读,文档中对此进行了很好的描述:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt

  3. 为什么 .toString() 分配了 16 的值,在我看来,它必须与 hexa 因此 16 有关,但它与将十六进制转换为 ASCII 有什么关系?

    toString()有一个基数参数,指定要使用的基数。这告诉它使用基数 16。