Что выведет код Middle Объекты и массивы обновлено

JSON и undefined

Вопрос

Что выведет код? По строке на каждый вывод.

const o = { a: 1, b: undefined, c: () => 1, d: NaN };
console.log(JSON.stringify(o));
console.log(JSON.stringify([undefined, () => 1]));

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: {"a":1,"d":null}, [null,null]. Почему так undefined и функции выбрасываются из объектов, но в массивах становятся null.

Что выведет

{"a":1,"d":null}
[null,null]

Разбор

Почему так

undefined и функции выбрасываются из объектов, но в массивах становятся null. NaN и Infinity сериализуются в null. Поэтому JSON.parse(JSON.stringify(x)) - плохой deepClone.

Вывод

{"a":1,"d":null}
[null,null]

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.