> В чем отличие передачи параметров по значению и по ссылке в JavaScript? (JavaScript)
Уровень: middle · Роль: frontend · Категория: Технические вопросы
Компании: JSA GROUP
Стек: JavaScript
> Пример ответа
В JavaScript передача параметров всегда происходит по значению, но это значение может быть ссылкой на объект. Ключевое отличие:
- Примитивы (числа, строки, булевы значения,
null,undefined,symbol,bigint) копируются полностью. Изменение параметра внутри функции не влияет на исходную переменную. - Объекты (включая массивы, функции, объекты) передаются по значению, но этим значением является ссылка на объект в памяти. Поэтому внутри функции можно изменить свойства объекта, и эти изменения будут видны снаружи. Однако присвоение нового значения параметру (например,
obj = {}) не повлияет на внешнюю переменную.
Пример:
JAVASCRIPTfunction changePrimitive(x) {x = 10; // не влияет на внешнюю переменную}let a = 5;changePrimitive(a);console.log(a); // 5function changeObject(obj) {obj.name = 'new'; // изменяет свойство исходного объекта}let myObj = { name: 'old' };changeObject(myObj);console.log(myObj.name); // 'new'function reassignObject(obj) {obj = { name: 'other' }; // не влияет на внешнюю ссылку}reassignObject(myObj);console.log(myObj.name); // 'new' (осталось прежним)
Таким образом, в JavaScript нет передачи по ссылке в классическом смысле (как в C++), а есть передача значения-ссылки для объектов.
> Похожие задачи по frontend
Почему для обработки промисов используют конструкции вместо console.log напрямую
Уровень: seniorКатегория: Технические вопросы
Компания: витринатв
Стек: JavaScript
Как сборщик мусора находит неиспользуемые объекты в JavaScript
Уровень: seniorКатегория: Технические вопросы
Компания: ПочтаТех
Стек: JavaScript
Можно ли сравнить два объекта в JavaScript и как это сделать
Уровень: seniorКатегория: Технические вопросы
Компания: X5Tech
Стек: JavaScript
Какие способы выполнения HTTP-запросов в браузере на JavaScript?
Уровень: seniorКатегория: Технические вопросы
Компания: 1xbet
Стек: JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью