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

Javascript 用于显示十六进制数字的控制台设置,javascript,console,Javascript,Console,我刚刚注意到,当将包含十六进制字符串值的数据结构记录到控制台时,它将字段输出为1,而不是字符串值。这在Chrome和Safari中发生 在屏幕截图的顶部,您可以看到一个正在记录的对象,这个对象有一个“_id”字段,这个字符串是一个MongoDb对象id,简而言之,它是一个十六进制字符串 您可以在屏幕截图顶部看到_id字段包含一个字符串,但当对象值打印到展开视图时,它显示为数字1 第二个日志是me控制台。显式记录值,即 //Where obj is the object being logged

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

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

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

第二个日志是me控制台。显式记录值,即

//Where obj is the object being logged in the screenshot.
console.log(obj.data._id);
不确定这里到底发生了什么,我看不出被记录的值将如何输出为数字1,这不是十六进制字符串的基数10,控制台肯定在对该值进行一些假设,并对其进行处理,但不确定那里到底发生了什么

所以我的问题是


为什么这里要打印1

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

下面是一个简单的例子

打开Chromes控制台,。您将看到{x:one},但是当您展开对象时,您将看到x:1而不是x:one

变量a={ x:一个 }; console.loga;
a、 x=1;这可能是一个时间问题,当项目第一次被记录时,它的值可能确实是5afb…,但是当您在控制台日志中展开视图时,它已经映射到1。。当您在Chrome中登录某个对象时,它的引用被保留,IOW:它将成为该对象的实时视图。附言这是Chromes控制台日志的常见问题,…是否有可复制的示例?我最好的猜测是你正在做一些你根本没有在这里描述的事情,因此回答这个问题可能是不可能的。对不起,这是我,我把一个硬编码的1:真实故事dat^