Встречается на собеседованиях • сегодня

Как асинхронность влияет на несовпадение результата в консоли и вызванного кода

Асинхронность может приводить к расхождению между выводом в консоли и фактическим состоянием объекта на момент вызова. Это происходит из-за особенностей работы консоли браузера, которая может "лениво" вычислять значения объектов.

Пример:

javascript
const obj = { a: 1 };
console.log(obj); // В консоли может показать {a: 1, b: 2}
obj.b = 2;

В этом случае консоль сначала сохраняет ссылку на объект, а отображает его содержимое только при раскрытии. Решение - логировать копию объекта или примитивы:

javascript
console.log({...obj}); // или JSON.parse(JSON.stringify(obj))

Для примитивов такой проблемы нет:

javascript
let num = 1;
console.log(num); // 1
num = 2; // консоль покажет 1
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы