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

标签 javascript console

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

enter image description here

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

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

第二个日志是我通过 console.log 显式记录该值,即

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

不确定这里到底发生了什么,我看不到正在记录的值如何输出为数字 1,这不是十六进制字符串的以 10 为基数的值,控制台肯定对该值做出了一些假设,并且正在处理它,但不确定那里到底发生了什么。

所以我的问题是

为什么这里打印 1?

最佳答案

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

下面是一个简单的例子。

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

var a = {
  x: "one"
};

console.log(a);

a.x = 1;

关于javascript - 用于显示十六进制数字的控制台设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50358679/

相关文章:

c++ - 向 C++ 控制台应用程序添加状态栏

javascript - 我在滥用我的 POST 请求吗?我一直收到 400/500(错误的请求)

javascript - 在 <img src> 标签中使用 var

visual-studio-code - 如何在 VS Code 中创建 "terminal configuration macro"?轻松打开和拆分多个终端

javascript - 何时(以及为什么)在 JavaScript 控制台中未定义 {}?

Java 和 Python - 从子进程启动时 System.console() 返回 null

android - 如何在Android中选择声音设备

javascript - Vimeo iframe 作为背景

javascript - 在 Chrome 中,为什么在多次运行排序时对较长的数组进行排序会翻转条目?

javascript - OpenAI API错误: "Module ' openai' has no exported member 'Configuration' "