Javascript передать переменную в функцию

Передача переменой в функцию в JavaScript

В этом заметке мы передавали в функцию (в качестве ее параметров) числа и переменные.

Переменные содержали произвольные числовые значения, с которыми проводилась работа в теле функции (числа складывались, умножались и т.п.).

При работе с функциями важно понимать , каким образом ей передаются переменные?

Что происходит со значениями этих переменных?

Так вот, Javascript копирует значение переменной в функцию, а исходное значение переменной останется прежним .

1) Допустим, есть произвольная переменная test , принимающая числовое значение 1 .

2) И функция doIt с параметром param , которая увеличивает значение этого параметра на 1 , а затем его возвращает.

function doIt(param) param = param + 1;
return param;
>

3) Что произойдет, если аргументом функции в качестве ее параметра указать переменную test ?

Пример передачи переменной в функцию

function doIt(param) param = param + 1;
return param;
>

result = doIt( test );
document.write(«Результат работы функции: » + result );

document.write(»

Исходное значение переменной: » + test );

Результат работы функции: 2
Исходное значение переменной: 1

Комментарии: как происходит передача переменной в Функцию?

Сначала мы вызываем функцию и передаем ей в аргументе переменную test (указываем ее в качестве параметра функции).
doIt(test);

При этом в функцию передается значение переменной, то есть число 1 .

Затем результат работы функции заносится в переменную result :
result = doIt(test) , которая далее выводится на экран.

Мы видим, что в результате своей работы функция выдает число 2 , что является лишь изменением переданного ей значения переменной test , но не самой переменной .

Таким образом, при передаче переменной в функцию, в нее копируется значение переменной , а но не сама переменная .

Читайте также:  Invalid content type text html

Читайте также.

Передача объекта в Функцию — Переменная ссылается на объект

Передача функции в функцию — Первоклассные значения

Создание переменных — Присвоение значений переменным

Операции над переменными – Сложение чисел и строк

Объявление переменных — Ключевые слова let, const и var

Функция isNaN — Число или не число

Функции parseInt, parseFloat — Конвертация строк

Источник

Javascript передать переменную в функцию

Передача параметров по значению

Строки, числа, логические значения передаются в функцию по значению. Иными словами при передаче значения в функцию, эта функция получает копию данного значения. Рассмотрим, что это значит в практическом плане:

function change(x) < x = 2 * x; console.log("x in change:", x); >var n = 10; console.log("n before change:", n); // n before change: 10 change(n); // x in change: 20 console.log("n after change:", n); // n after change: 10

Функция change получает некоторое число и увеличивает его в два раза. При вызове функции change ей передается число n. Однако после вызова функции мы видим, что число n не изменилось, хотя в самой функции произошло увеличение значения параметра. Потому что при вызове функция change получает копию значения переменной n. И любые изменения с этой копией никак не затрагивают саму переменную n.

Передача по ссылке

Объекты и массивы передаются по ссылке. То есть функция получает сам объект или массив, а не их копию.

function change(user) < user.name = "Tom"; >var bob =< name: "Bob" >; console.log("before change:", bob.name); // Bob change(bob); console.log("after change:", bob.name); // Tom

В данном случае функция change получает объект и меняет его свойство name. В итоге мы увидим, что после вызова функции изменился оригинальный объект bob, который передавался в функцию.

Читайте также:  Магический метод toarray php

Однако если мы попробуем переустановить объект или массив полностью, оригинальное значение не изменится.

function change(user)< // полная переустановка объекта user= < name:"Tom" >; > var bob =< name: "Bob" >; console.log("before change:", bob.name); // Bob change(bob); console.log("after change:", bob.name); // Bob

То же самое касается массивов:

function change(array) < array[0] = 8; >function changeFull(array) < array = [9, 8, 7]; >var numbers = [1, 2, 3]; console.log("before change:", numbers); // [1, 2, 3] change(numbers); console.log("after change:", numbers); // [8, 2, 3] changeFull(numbers); console.log("after changeFull:", numbers); // [8, 2, 3]

Источник

Оцените статью