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

Why does hex value is returned as a number in javascript

本文关键字:数字 字形 返回 十六进制 javascript 为什么      更新时间:2023-09-26

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

var testingVar = 0xffff00;

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

在Javascript中没有"十六进制值"这回事。有字符串和数字。

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

您可以通过toString方法使用不同的基数来查看数字的字符串表示。

// hex
(0xffff00).toString(16) // "0xffff00"
// decimal
(0xffff00).toString(10) // "16776960"
// octal (for good measure)
(0xffff00).toString(10) // "77777400"

您可以在Javascript中使用十六进制。

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

var testingVar = '0xffff00';

当你需要的时候,你可以打电话如下:

num = parseInt(testingVar, 16);