2016-03-14 95 views
-3

首先,我不太确定ASCII是什么(我已经使用了它,但没有理解的运气),无论如何,我正在为学习者解决一个练习,并遇到了这个问题,答案是下面的代码。如何将ASCII转换为十六进制的JavaScript?

,我发现很难几条语句和概念在这个代码理解如下:

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

  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(''); 
} 
+0

ascii只是一个数字值的列表,指向您的计算机中的某些字符。例如,“A”的值为65(或十六进制为41)。另一方面,“a”的值为97,转义字符为27,回车键为13,等等。如果你查看“ascii chart”,你会发现哪些字符有什么值的完整表格。 –

回答

0
  1. 什么是2个inizialtions(VAR n = 0时,L = str.length),用于For循环的目的是什么?

    变量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的价值,在我看来,像它与六因而16 ,但它与将十六进制转换为ASCII有什么关系?

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