为什么十六进制值在javascript中以数字形式返回

为什么十六进制值在javascript中以数字形式返回,javascript,hex,Javascript,Hex,我在浏览器控制台中尝试了以下代码 var testingVar = 0xffff00; 当我访问变量时,它返回的值是16776960,而不是hexa值。为什么会发生这种情况?我们不能在变量中存储十六进制值。Javascript中没有“十六进制值”这样的东西。有字符串和数字 0xffff00只是用于指定数字的另一种语法。默认情况下,控制台将以十进制(以10为基数)打印数字,这就是为什么您会看到16776960 您可以看到数字的字符串表示形式,该方法使用不同的基 可以在Javascript中使用十

我在浏览器控制台中尝试了以下代码

var testingVar = 0xffff00;

当我访问变量时,它返回的值是
16776960
,而不是hexa值。为什么会发生这种情况?我们不能在变量中存储十六进制值。

Javascript中没有“十六进制值”这样的东西。有字符串和数字

0xffff00
只是用于指定数字的另一种语法。默认情况下,控制台将以十进制(以10为基数)打印数字,这就是为什么您会看到
16776960

您可以看到数字的字符串表示形式,该方法使用不同的基


可以在Javascript中使用十六进制

当需要将八进制或十六进制字符串转换为数字时,请使用函数
parseInt(str,base)
。考虑这些例子,首先你应该定义如下

var testingVar = '0xffff00';
需要时,您可以按如下方式拨打电话:

num = parseInt(testingVar, 16);

数据!=他们是一样的。十六进制不是“值”,而是值的表示形式。该值的类型为number。您可以在字符串中存储十六进制值。使用
parseInt(str,base)
将八进制或十六进制字符串转换为数字。编程中没有“十六进制值”这样的东西languages@slebetman一般来说,你的陈述不可能对所有情况都是正确的。编程语言可以有一个专门表示十六进制值的专用类型。这个问题在我使用grunt web字体时发生,它要求我传递一个
0xE001
,但在javascript中我不能传递。@zerkms:是的,但截至2015年11月的所有现有情况都是如此。将来可能会有人决定这样做,但据我所知还没有做到(在我15年的编程生涯中,我研究了很多语言)@DimalChandrasiri:它可能希望将该值作为字符串,而不是数字。在这种情况下,它不是一个十六进制值,而是一个字符串零,ex,ee,零,零,一
num = parseInt(testingVar, 16);