Настройка консоли для отображения шестнадцатеричных чисел - PullRequest
0 голосов
/ 15 мая 2018

Я только что заметил, что при записи в консоль структуры данных, которая содержит шестнадцатеричное строковое значение, поле выводится как 1, а не как строковое значение.Это происходит в Chrome и Safari.

enter image description here

В верхней части снимка экрана вы видите регистрируемый объект, у этого объекта есть _id'поле, эта строка является ObjectId MongoDb, в двух словах, это шестнадцатеричная строка.

В верхней части скриншота видно, что поле _id содержит строку, но когда печатается значение (объекта) (расширенный вид), оно отображается как (Число) 1.

Второй журнал - это я console.log явно указывает значение, т. Е.

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

Не знаю точно, что здесь происходит, я не вижу, как регистрируемое значение будет выводиться как число 1, это не базовое значение 10 шестнадцатеричной строки, консоль, безусловно, делает некоторое предположение о значении и обрабатывает его, не зная точно, что там происходит.

Итак, мой вопрос

Почему здесь печатается 1?

1 Ответ

0 голосов
/ 15 мая 2018

Не зная, что еще произошло с объектом после его отправки на консоль, я предполагаю, что вы видите здесь, как журнал консоли Chrome хранит ссылку на объект, он не хранит снимок в время ведения консоли, но реальная ссылка на объект.

Ниже приведен простой пример.

Откройте консоль Chromes. вы увидите {x: "one"}, но при расширении объекта вы увидите x: 1, а не x: "one" ..

var a = {
  x: "one"
};

console.log(a);

a.x = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...