Что выведет код Senior Объекты и массивы обновлено
toJSON и replacer
Вопрос
Что выведет код? По строке на каждый вывод.
const obj = {
date: new Date(0),
secret: 'пароль',
n: 1,
toJSON() { return { n: this.n }; },
};
console.log(JSON.stringify(obj));
console.log(JSON.stringify({ a: 1, b: 2 }, ['a']));
console.log(JSON.stringify(new Date(0)).slice(0, 5));
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: {"n":1}, {"a":1}, "1970. Почему так Метод toJSON перехватывает сериализацию - так Date превращается в ISO-строку.
Что выведет
{"n":1}
{"a":1}
"1970
Разбор
Почему так
Метод toJSON перехватывает сериализацию - так Date превращается в ISO-строку. Второй аргумент stringify (массив ключей или функция) фильтрует поля - удобный способ не отправить лишнего в логи.
Вывод
{"n":1}
{"a":1}
"1970
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.