Что выведет код Junior Объекты и массивы обновлено
Мутация через ссылку
Вопрос
Что выведет код? По строке на каждый вывод.
function change(obj, arr) {
obj.a = 2;
obj = { a: 99 };
arr.push(4);
arr = [99];
}
const o = { a: 1 };
const a = [1, 2, 3];
change(o, a);
console.log(o.a);
console.log(a.length);
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 2, 4. Почему так В JS всё передаётся по значению, но значение объекта - это ссылка.
Что выведет
2
4
Разбор
Почему так
В JS всё передаётся по значению, но значение объекта - это ссылка. Мутация по ссылке видна снаружи, переприсваивание параметра - нет.
Вывод
2
4
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.