Sobes.tech
Назад к вопросам
Middle
2

Даны три секции кода. Необходимо написать результат выполнения каждого console.log. var n = 1; function f(n) { n = 3; } f(n); console.log(n); // ?? // ------------------ var obj = { a: 1 }; function f1(o) { o.a = 5; } f1(obj); console.log(obj); // ?? // ------------------ var obj = { a: 1 }; function f2(o) { o = { hello: 1 }; } f2(obj); console.log(obj); // ??

Компании, где спрашивали
Яндекс МаркетЯндекс Маркет

Ответ от нейросети

sobes.tech AI

js var n = 1;

function f(n) { n = 3; } f(n);

console.log(n); // 1

Здесь параметр `n` функции `f` — локальная копия значения, переданного при вызове. Изменение `n` внутри функции не влияет на внешнюю переменную.

```js
var obj = { a: 1 };

function f1(o) {
  o.a = 5;
}
f1(obj);

console.log(obj); // { a: 5 }

Объекты передаются по ссылке, поэтому изменение свойства объекта внутри функции отражается на исходном объекте.

var obj = { a: 1 };

function f2(o) {
  o = { hello: 1 };
}

f2(obj);

console.log(obj); // { a: 1 }

Здесь переменной o внутри функции присваивается новый объект, но это не меняет ссылку obj вне функции. Поэтому obj остается без изменений.