用于显示十六进制数字的控制台设置

时间:2018-05-15 20:27:11

标签: javascript console

我刚刚注意到,当将包含十六进制字符串值的数据结构记录到控制台时,它将字段输出为1,而不是字符串值。这种情况发生在Chrome和Safari中。

enter image description here

在屏幕截图的顶部,您可以看到正在记录的对象,此对象有一个' _id'字段,这个字符串是一个MongoDb ObjectId,简而言之,它是一个十六进制字符串。

您可以在屏幕截图的顶部看到_id字段包含字符串但是当打印它(对象)值时(展开的视图),它显示为(数字) )1。

第二个日志是我console.log明确表示该值,即

//Where obj is the object being logged in the screenshot.
console.log(obj.data._id);

确定这里发生了什么,我无法看到记录的值如何输出为数字1,这不是十六进制字符串的基数10值,控制台肯定会产生一些关于价值的假设,并处理它,不确定那里到底发生了什么。

所以我的问题是

为什么要在这里打印1张?

1 个答案:

答案 0 :(得分:1)

在不知道对象发送到控制台后还发生了什么后,我假设您在这里看到的是Chrome控制台日志如何保留对象的引用,它不会在控制台日志记录时保存快照,而是对该对象的实时引用。

下面是一个简单的例子。

打开Chromes控制台。您会看到x: 1,但展开对象时,您会看到x: "one"而非var a = { x: "one" }; console.log(a); a.x = 1; ..



{{1}}