Как в JavaScript-функции передаются параметры: по ссылке или по значению?
В JavaScript примитивные типы (например, числа, строки, логические значения) передаются в функции по значению, а объекты (включая массивы и функции) передаются по ссылке, но это передача по значению самой ссылки.
Когда функция вызывается с примитивными типами (числа, строки, логические значения, null, undefined, символы, BigInt), значения копируются и передаются в функцию. Изменения, сделанные внутри функции с этими параметрами, не влияют на оригинальные переменные за пределами функции.
Пример с примитивными типами:
В этом примере значение переменной a не изменяется, так как функция получает копию значения a.
Когда функция вызывается с объектами (включая массивы и функции), передается копия ссылки на оригинальный объект. Это означает, что внутри функции можно изменить свойства объекта, и эти изменения будут видны за пределами функции, потому что обе ссылки указывают на один и тот же объект.
Пример с объектами:
В этом примере изменения, внесенные в объект person внутри функции, видны за пределами функции, так как и внутри, и снаружи функции используется одна и та же ссылка на объект.
Таким образом, JavaScript использует передачу по значению для примитивных типов и передачу по значению ссылки для объектов.
Отметьте свой прогресс