Какой вывод получит консоль (пример 108)

Результаты: 'object', true, true, false, false и объект со свойством '[object Object]': '1'. Последнее происходит из-за строкового преобразования ключа-объекта.

Короткий ответ

Что ответить на собеседовании

Результаты: 'object', true, true, false, false и объект со свойством '[object Object]': '1'. Последнее происходит из-за строкового преобразования ключа-объекта.

Подробный разбор

Ответ с пояснениями

Условие

Определите, какой результат будет выведен в консоль после выполнения следующего JavaScript‑кода.

console.log(typeof null);

const arrowFn = () => {};
console.log(arrowFn instanceof Object);

console.log(1 == "1");

console.log(1 === "1");

console.log({ a: 1 } == { a: 1 });

const obj = {};
const key = {};
obj[key] = '1';
console.log(obj);

Ответ

Результаты: 'object', true, true, false, false и объект со свойством '[object Object]': '1'. Последнее происходит из-за строкового преобразования ключа-объекта.

typeof null исторически возвращает 'object', хотя null не является обычным объектом. Стрелочная функция — объект с цепочкой прототипов, ведущей к Object.prototype в этом же окружении.

Нестрогое 1 == '1' приводит типы и даёт true; строгое сравнение — false. Два литерала {a:1} создают разные ссылки, поэтому даже == возвращает false. Обычный объект как ключ obj[key] преобразуется в '[object Object]'; для ключей по ссылке используйте Map.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее