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

时间:2016-03-14 20:22:11

标签: javascript

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

我发现在此代码中很难理解的语句和概念如下:

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

  2. 什么是charCodeAt(n)

    我学会了它的unicode,但这对于这个函数是什么以及如何与charCodeAt相关以及两者如何与十六进制到ASCII转换相关?

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

    在我看来,它必须使用十六进制,因此16,但它如何将十六进制转换为ASCII?

  4. 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('');  
    }
    

2 个答案:

答案 0 :(得分:0)

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 :(得分:0)

  1. for循环的2个inizialtions(var n = 0,l = str.length)的目的是什么?

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

  2. 什么是charCodeAt(n),我学会了它的unicode,但这对于这个函数是什么以及如何与charCodeAt相关以及两者如何与十六进制到ASCII转换相关?

    charCodeAt您可以自己阅读,文档中有详细说明:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt

  3. 为什么.toString()赋值为16,在我看来,它必须与hexa 16,但是如何将十六进制转换为ASCII?

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