Elettracompany.com

Компьютерный справочник
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Функция return в javascript

Инструкция return в JavaScript

Пусть у нас есть функция, которая выводит на экран квадрат переданного числа:

Пусть мы хотим не выводить значение на экран, а записать в какую-нибудь переменную, вот так:

Для этого в JavaScript существует специальная инструкция return, которая позволяет указать значение, которое возвращает функция.

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

Итак, давайте перепишем нашу функцию так, чтобы она не выводила результат на экран, а возвращала его в переменную:

После того, как данные записаны в переменную, их можно, например, вывести на экран:

А можно сначала как-то изменить эти данные, а затем вывести их на экран:

Можно сразу выполнять какие-то действия с результатом работы функции перед записью в переменную:

А можно не записывать результат в переменную, а сразу вывести его на экран:

Сделайте функцию, которая параметром принимает число, а возвращает куб этого числа. С помощью этой функции найдите куб числа 3 и запишите его в переменную result.

Использование функций в выражении

В следующем примере с помощью функции func мы сначала найдем квадрат числа 2, а затем — 3 квадрат числа, сложим эти значения и запишем в переменную:

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

С помощью этой функции найдите корень числа 3, затем найдите корень числа 4. Просуммируйте полученные результаты и выведите их на экран.

Функции в функциях

Можно также результат работы одной функции передать параметром в другую, например, вот так мы сначала найдем квадрат числа 2, а затем квадрат результата:

Функции, конечно же, не обязательно должны быть одинаковыми.

Пусть, например, у нас есть функция, возвращающая квадрат числа, и функция, возвращающая куб числа:

Давайте с помощью этих функций возведем число 2 в квадрат, а затем результат этой операции возведем в куб:

Пусть теперь у нас есть функция, возвращающая квадрат числа, и функция, находящая сумму двух чисел:

Найдем с помощью этих функций сумму квадрата числа 2 и сумму квадрата числа 3:

Пусть у вас есть функция, возвращающая квадратный корень из числа, и функция, округляющая дробь до трех знаков в дробной части:

С помощью этих функций найдите квадратный корень из числа 2 и округлите его до трех знаков в дробной части.

Пусть у вас есть функция, возвращающая квадратный корень из числа, и функция, возвращающая сумму трех чисел:

С помощью этих функций найдите сумму корней чисел 2, 3 и 4 и запишите ее в переменную result.

Пусть у вас есть функция, округляющая дробь до трех знаков в дробной части:

С помощью этой функции модифицируйте предыдущую задачу так, чтобы в переменную result записывалась дробь, округленная до 3-х знаков в дробной части.

Тонкое место return

После того, как выполнится инструкция return — функция закончит свою работу. То есть: после выполнения return больше никакой код не выполнится.

Это не значит, что в функции должен быть один return. Но выполнится только один из них.

В следующем примере в зависимости от значения параметра выполнится либо первый, либо второй return:

Что выведется на экран в результате выполнения следующего кода:

Что выведет каждый из алертов в результате выполнения следующего кода:

Что выведет каждый из алертов в результате выполнения следующего кода:

Цикл и return

Пусть у нас есть функция, возвращающая сумму чисел от 1 до 5:

Обратите внимание на то, что return расположен после цикла.

Пусть теперь мы расположим return внутри цикла, вот так:

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

А за одну итерацию цикла в переменной sum окажется лишь число 1, а не вся нужная сумма.

Что выведется на экран в результате выполнения следующего кода:

Что хотел сделать автор данного кода? Исправьте ошибку автора.

Применение return в цикле

То, что return расположен внутри цикла, не всегда может быть ошибкой.

В следующем примере сделана функция, которая определяет, сколько первых элементов массива нужно сложить, чтобы сумма стала больше или равна 10:

А в следующем примере сделана функция, которая вычисляет, сколько целых чисел, начиная с 1, нужно сложить, чтобы результат был больше 100:

Напишите функцию, которая параметром будет принимать число и делить его на 2 столько раз, пока результат не станет меньше 10. Пусть функция возвращает количество итераций, которое потребовалось для достижения результата.

Приемы работы с return

Существуют некоторые приемы работы с return, упрощающие код.

Рассмотрим, к примеру, следующий код:

Как вы видите, в данном коде в зависимости от условия в переменную result будет попадать либо одно, либо другое значение. А последней строкой функции содержимое переменной result возвращается через return.

Давайте перепишем этот код в более сокращенной форме, избавившись от ненужной здесь переменной result:

Дана следующая функция:

Перепишите ее в сокращенной форме согласно изученной теории.

Оператор return в JavaScript — Возврат значений функцией

Урок №3 Возврат значений функцией

Количество просмотров : 7478

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

Выводим результат работы функции на экран

Если вернуться к предыдущим урокам: Введение в Функции и Область видимости переменных, то мы увидим, что во всех примерах результат работы функции мы сразу выводили на экран при помощи метод write () объекта document .

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

Но в основном в программировании нет необходимости сразу выводить результат работы функции подобным образом.

Возврат значения функции — Оператор return

Дело в том, что в JavaScript функция может возвращать результат своей работы (в данном случае числовое значение), а мы его, соответственно, получать , где это необходимо.

Продолжим работать с предыдущим примером. Только теперь мы не будем сразу выводить результат работы функции (то есть квадрат числа) на экран, а используем его в дальнейшем для каких-либо вычислений.

Для таких случаев предусмотрена возможность возврата значений функцией . Это делается при помощи оператора return . Давайте на примере посмотрим, как это реализуется.

Итак, что мы сделали?

При помощи оператора return мы возвращаем значение функции — переменную result , содержащую квадрат числа.

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

Теперь мы можем вызывать функцию в любом месте программы и использовать результат ее работы в своих целях.

Что мы и делаем далее: заносим значение (результат работы) функции в переменную total . Затем выводим эту переменную (а значит и результат работы функции) на экран.

Читать еще:  Подключаемый модуль java

Давайте еще раз повторим пройденный материал. Алгоритм наших действий таков:

Создаем функцию + возвращаем ее значение (результат работы) — оператор return

Вызываем функцию в любом месте программы + заносим результат ее работы в какую-либо переменную

Используем переменную, содержащую значение функции по своему усмотрению

Используя все тот же пример с квадратом числа, посмотрим, как еще мы можем использовать возвращаемое при помощи оператора return значение функции.

JavaScript — Функции. Оператор return

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

Что такое функция?

Функция — это некоторый набор инструкций , которому можно дать имя , а затем обратиться к нему по этому имени из любого места программы.

Классический пример использования функции. На веб-странице имеется код JavaScript, некоторый фрагмент в котором повторяется несколько раз . Чтобы этого избежать можно оформить этот фрагмент в виде функции , а затем вызывать его в нужных местах кода по имени этой функции . Вызов этой функции будет обозначать выполнение инструкций , находящихся в ней.

Как организовать выполнение некоторой задачи в JavaScript с использованием функций? Чтобы это выполнить обычно поступают так:

  • разбивают задачу на составные части (подзадачи);
  • подзадачи оформляют через функции;
  • разрабатывают основной код с использованием вызова созданных функций.

В результате такая программа становится более структурированной. В неё более просто вносить различные изменения и добавлять новые возможности.

Объявление и вызов функции

Операции с функцией в JavaScript можно разделить на 2 шага:

  • объявление (создание) функции.
  • вызов (выполнение) этой функции.

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

JavaScript — Синтаксис объявления функции

Функции такого вида в JavaScript называются function declaration statement . Кроме этого вида в JavaScript ещё различают функции function definition expression и arrow function expression .

Составление имени функции выполняется по тем же правилам, что и имя переменной. Т.е. оно может содержать буквы, цифры (0-9), знаки «$» и «_». В качестве букв рекомендуется использовать только буквы английского алфавита (a-z, A-Z). Имя функции, также как и имя переменной не может начинаться с цифры.

Параметров у функции может быть сколько угодно много или не быть вообще. Круглые скобки в любом случае указываются. Если параметров несколько, то их между собой необходимо разделить с помощью запятой . Обращение к параметрам функции осуществляется по их имени.

Набор инструкций , заключенный в фигурные скобки — это код функции , который будет выполнен при её вызове .

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

JavaScript — Синтаксис вызова функции

Является ли функция в JavaScript объектом?

Функции в JavaScript являются объектами. В JavaScript вообще всё является объектами, кроме шести примитивных типов данных. А если функция является объектом, то ссылку на неё можно сохранить в переменную.

После этого вызвать функцию можно будет так:

Параметры и аргументы функции

Аргументы функции — это значения, которые передаются функции на этапе её вызова. Отделяются аргументы друг от друга с помощью запятой.

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

Другими словами параметры функции — это локальные переменные, которые создаются автоматически на этапе запуска функции. В качестве значений параметры получают соответствующие аргументы, переданные функции во время её вызова. Обратиться к параметрам можно только внутри этой функции, вне её они не существуют.

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

Например , вызовем функцию из примера, приведённого выше, без указания одного и двух параметров:

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

Другой способ обратиться к аргументам внутри функции – это использовать специальный объект arguments . Доступ к аргументам через arguments выполняется точно также как к элементам обычного массива, т.е. по их порядковым номерам. Таким образом, argument[0] — позволит получить первый аргумент, arguments[1] – второй аргумент и т.д.

Основное отличие между этими способами заключается в том, что первый из них позволяет обратиться только к тем аргументам, которым на этапе объявления функции были дали имена. Второй же способ позволяет получить значение любого аргумента, даже если у него нет имени (по порядковому номеру). Это возможность языка JavaScript позволяет создавать универсальные гибкие функции.

Кроме получения аргументов, объект arguments позволяет также узнать их количество. Выполняется это с помощью свойства length.

Перебрать аргументы , переданные функции, можно, например, с помощью цикла for или for. of .

Функция, выводящая в консоль все переданные ей аргументы и их количество:

Функция, выполняющая сложение все переданных ей аргументов (их количество заранее неизвестно):

В результате, посредством объекта arguments можно реализовать в теле функции:

  • проверку количества переданных аргументов;
  • обработку какого угодного количества параметров.

Кроме самой функции, доступ к аргументам, которые передаются ей на этапе вызова, имеют также другие функции, находящиеся в ней.

Значение параметров по умолчанию

Начиная с версии ECMAScript 2015 (6) параметру функции можно задать значение, которое он будет иметь по умолчанию.

Например , установим параметру «color» значение по умолчанию, равное «#009688»:

До ECMAScript 2015 задать параметру значение по умолчанию можно, например, было так:

Оставшиеся параметры (rest parameters)

Если при вызове функции ей передать аргументов больше, чем у неё есть параметров, то получить оставшиеся можно с помощью, так называемых оставшихся параметров (rest patameters) . Данная возможность в языке появилась, начиная с ECMAScript 2015.

Оператор return

Оператор return предназначен для возвращения значения или результата вычисления выражения текущей функции. Значение или выражение должно быть отделено от return посредством пробела. Кроме этого, оператор return прекращает выполнение функции, т.е. все инструкции, идущие после него, исполнены не будут.

Функция в JavaScript всегда возвращает результат в вне зависимости от того, используется ли оператор return или нет.

JavaScript — Функция с проверкой параметров

Функция в JavaScript в результате своего выполнения всегда возвращает результат, даже если он явно не определён с помощью оператора return. Этот результат значение undefined.

JavaScript — Получить значение у функции, которая ничего не возвращает

Такой же результат будет получен, если для оператора return не указать возвращаемое значение.

Читать еще:  Long parselong java

Перегрузка функций в JavaScript

Перегрузка функций в программировании – это возможность объявлять несколько функций с одинаковыми именами в одной области видимости. Отличаются такие функции друг от друга типом и числом аргументов. Каждая функция имеет свою программную логику. Используется перегрузка функций для того, чтобы с помощью одного имени функции можно было выполнять близкие действия.

Язык JavaScript не поддерживает перегрузку функций в том виде, как это реализовано, например, в Си подобных языках. Т.е. в JavaScript нельзя создать несколько функций с одинаковыми именами, находящихся в одной области видимости.

Подобную функциональность можно реализовать в JavaScript используя следующие действия:

  • Для того чтобы проверить передан аргумент или нет, используйте условие с проверкой его значения на undefined .
  • Для проверки количества переданных аргументов функции используйте свойство объекта arguments length .
  • Чтобы узнать тип переданного значения аргумента используйте операторы typeof или instanceof .
  • Для работы с переменным числом аргументов, используйте объект arguments .
  • Начиная с версии ECMAScript6, Вы можете указывать значения по умолчанию для аргументов.

Например, создадим функцию, при вызове которой можно указывать один или два аргумента:

Произведём некоторые изменения в вышепредставленном коде. А именно, укажем для второго параметра значение по умолчанию:

Пример, как в JavaScript можно реализовать «перегруженную» функцию, вычисляющую количество калорий, которых необходимо человеку в день:

Рекурсия

Рекурсия – это вызов внутри тела некоторой функции самой себя.

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

Вызвать функцию внутри её тела можно не только по имени, но также с помощью свойства callee объекта arguments. Но данное свойство лучше не использовать, т.к. оно является устаревшим. Кроме этого в строгом режиме оно вообще не работает.

Что такое встроенные (стандартные) функции?

В JavaScript имеется огромный набор встроенных (стандартных) функций. Данные функции уже описаны в самом движке браузера. Практически все они являются методами того или иного объекта.

Например, для того чтобы вызвать встроенную функцию (метод) alert, её не надо предварительно объявлять. Она уже описана в браузере. Вызов метода alert осуществляется посредством указания имени, круглых скобок и аргумента внутри них. Данный метод предназначен для вывода сообщения на экран в форме диалогового окна. Текстовое сообщение берётся из значения параметра данной функции.

JavaScript — Вызов функции alert

Функция (return, параметры) в JS

Я знаю, что многих новичков ставит в тупик словосочетание – функция возвращает результат (return). Прежде чем разбирать, на примере JavaScript кода, проведем аналогию с простым действием в реальной жизни.

Представьте себе, что функция это банкомат. Вы передаете банкомату ваши данные (параметры): пин код, сумма для снятия, затем нажимаете на кнопочку (событие), банкомат там что-то вычисляет (производит действие) и выдает вам денежку, возвращает результат (return).

Мы не будем заморачиваться с алгоритмом работы банкомата, а напишем свой собственный, пофантазируем: пин код + сумма = наличные. Банкомат в своих вычислениях будет руководствоваться формулой сложения.

function bankomat(pin, sum) <
return pin + sum; // результат
>

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

Переменная user принимает аргументы функции, полученные от пользователя и выводит результат сложения, возвращает число 1025. Клиент получает свои 1025 руб.

let user = bankomat(25, 1000);
alert(user); // 1025

Таким образом, введенные новые данные (аргументы) следующего клиента, передаются через переменную в параметры функции, запускается формула вычисления и мы получаем результат. Приведенный пример не стоит воспринимать буквально, важно уловить суть таких понятий, как function, return, parameters, arguments.

Думаю, что вы уже сами готовы ответить на вопрос – Что такое функция? Функция – это многократное использование одного и того же кода, она пишется один раз и повторяется снова и снова. Название функции может быть любое, но желательно отображающее суть программируемого действия.

function getPass() <
// тело функции
>

Внутри фигурных скобочек идет описание функции, для выполнения функции, пишется имя функции и круглые скобки.

getPass() // команда вызова функции

Область видимости функции

Функцию можно вызывать в любом месте скрипта, независимо от того, где эта функция описана.

Важная особенность! Переменные, объявленные внутри функции, считаются локальными и за пределами функции, программа их не видит, то есть к ним нельзя обратиться. Соответственно, переменные, объявленные в общем коде скрипта – глобальные.

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

let x = 5; // глобальная переменная
console.log(globalTest());
function globalTest() <
return x; // область видимости
>

Аргументы JavaScript функции

Рассмотрим на примере сложения двух чисел, что такое аргументы. В круглых скобочках функции передаются параметры – это переменные, вместо которых подставятся реальные значения, введенные пользователем или из базы данных.

function summa(x,y) <
console.log(x+y);
>

При вызове функции передаются аргументы.

Функция возвращает результат

Полученный результат от сложения чисел, не обязательно выводить в консоли, в alert окне или на странице. Функция, при помощи команды return, просто возвращает результат, который можно дальше применять в программе, обращаясь к итоговому результату.

Если программа дошла до return, то функция перестает выполняться и возвращает результат.

Способы объявления функции JS

В JavaScript объявить функцию можно двумя способами.

Первый способ через function:

Функцию можно вызвать, до и после её описания, где угодно.

Второй способ через выражение:

Переменной x присвоили анонимную функцию (без имени) и затем вызвали её, обратившись к имени переменной. Обратится к функции выражению, до её объявления, нельзя.

Заключение

Функция предназначена для многократного повторения кода, поэтому её писать надо так, чтобы функция что-нибудь возвращала. Она должна отлично выполнять какое-нибудь одно действие: возвратить сумму, строку. Не рекомендуется в одной функции программировать много действий.

Кроме того, функция должна быть универсальной: передавать параметры, которые нужно указывать при вызове функции. Функцию можно вызывать внутри другой функции и она там выполниться.

Переменную, объявленную внутри какой-нибудь функции, не видно снаружи. А все, что объявлено снаружи может быть доступно внутри функции.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Читать еще:  Java security cert

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    Функции

    Функции помогают снизить повторяемость кода за счет превращения часто встречающихся участков кода в независимые блоки, которые определяются один раз и могут вызываться многократно. В этой главе описаны основы их применения и соответствующие механизмы.

    JavaScript Функции

    Функция (function) – это самостоятельный фрагмент кода, решающий определенную задачу. Каждой функции присваивается уникальное имя, по которому ее можно идентифицировать и «вызвать» в нужный момент.

    Функции в языке JavaScript являются объектами, и следовательно ими можно манипулировать как объектами. Например, функции могут присваиваться переменным, элементам массива, свойствам объектов, передавать в качестве аргумента функциям и возвращать в качестве значения из функций.

    В JavaScript есть встроенные функции, которые можно использовать в программах, но код которых нельзя редактировать или посмотреть. Примеры встроенных функций вы уже видели – это alert() , prompt() , confirm() и document.write() . Кроме использования встроенных функций, вы можете создать свои собственные, так называемые пользовательские функции.

    Объявление и вызов функции

    Функция (как и всякий объект) должна быть объявлена (определена) перед её использованием.

    Функция JavaScript определяется с помощью ключевого слова function , за которым указываются следующие компоненты:

    • Идентификатор, определяющий имя функции. Чаще всего в качестве имен функций выбираются глаголы или фразы, начинающиеся с глаголов. По общепринятому соглашению имена функций начинаются со строчной буквы.
    • Пара круглых скобок () , которые могут включать имена параметров, разделенных запятыми ( параметр1, параметр2, . ). Эти имена параметров в теле функции могут использоваться как локальные переменные.
    • Пара фигурных скобок <> с инструкциями JavaScript внутри. Эти инструкции составляют тело функции: они выполняются при каждом вызове функции.

    Синтаксис функции JavaScript:

    Программный код, расположенный в теле функции, выполняется не в момент объявления функции, а в момент её вызова. Будучи один раз определенной, функция может сколько угодно раз вызываться с помощью оператора () (вызов функции):

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

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

    Интерпретатор JavaScript, встречая ключевое слово function , создаёт функцию и переменную с именем этой функции. Переменной присваивается ссылка на функцию.

    Обратившись к переменной с именем созданной функции можно увидеть, что в качестве значения там находится функция (а точнее ссылка на неё):

    Ссылку на функцию вы можете сохранить в любой переменной, например:

    «Классическое» объявление функции function имя(параметры) <код>называется в спецификации языка «Function Declaration».

    Существует альтернативный синтаксис для объявления функции «Function Expression» (функциональное выражение) – это объявление функции, которое является частью какого-либо выражения (например присваивания):

    Как видите, эта конструкция уже не выглядит стандартной: функция не имеет имени и находится в правой части команды присваивания переменной sayHello . Эту функцию тоже можно вызвать – на этот раз через переменную sayHello .

    Если у функции нет имени, как в предыдущем примере, она называется «анонимной».

    Разница между представленными объявлениями заключается в том, что функции, объявленные как «Function Declaration», создаются интерпретатором до начала выполнения кода (на этапе анализа), поэтому их можно вызвать до объявления:

    Функции «Function Expression» (функциональные выражения) создаются в процессе выполнения выражения, в следующем примере функция будет создана при операции присваивания sayHi = function. , поэтому вызов функции до её объявления приведёт к ошибке:

    Параметры и аргументы

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

    Для определения параметров функции используется следующий синтаксис:

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

    Аргументы функции — это значения, которые вы предоставляете функции в момент её вызова.

    Для вызова функции с передачей ей аргументов используется следующий синтаксис:

    Например, при вызове функции sum ей передаются два аргумента:

    Аргументы, передаваемые функции при её вызове, присваиваются параметрам функции в том порядке, в каком они указаны: первый аргумент присваивается первому параметру, второй аргумент – второму параметру и т. д.

    Важной особенностью функций в JavaScript является то, что функция может вызываться с произвольным количеством аргументов вне зависимости от того, сколько параметров было указано при её объявлении:

    1. Если при вызове функции ей передаётся больше аргументов, чем задано параметров, то «лишние» аргументы просто игнорируются и не присваиваются ни одному из параметров данной функции.
    2. Если количество аргументов, передаваемых функции при её вызове меньше, чем было указано параметров при объявлении, то параметрам без соответствующих аргументов присваивается значение undefined . Подобное поведение JavaScript удобно использовать, если некоторые аргументы функции необязательны и могут опускаться.

    Типы аргументов, передаваемых функции при её вызове, могут быть как примитивами (строки, числа, логические величины (boolean)), так и объектами (в т.ч. массивы и функции).

    Важно помнить, что при передаче функции аргументов, представляющих собой примитивные значения, в теле функции создается копия переданного значения и оригинал не изменяется. Иными словами, если аргумент будет изменён внутри функции, после ее завершения эта локальная переменная уничтожается, а оригинальная переменная остается прежней .

    Например, в коде ниже есть внешняя переменная user , значение которой при запуске функции копируется в параметр функции с тем же именем. Далее функция работает уже с параметром:

    При передаче в качестве аргумента объекта все происходит не так, как было с примитивными значениями. В таком случае копия объекта не создается – объекты передаются в функцию по ссылке. Переприсваивание самой ссылки также не будет иметь внешнего эффекта, но если в теле функции изменяются свойства объекта, то эти изменения будут видимы вне функции (побочный эффект). Поэтому, всегда следует помнить, что в функции содержится оригинальный объект.

    В этом примере мы видим, что внутри функции myFunc был изменен объект obj , и эти изменения повлияли на этот объект за пределами функции.

    Возвращаемые значения

    Функции могут не только принимать входящие данные из внешней программы, но и способны пере­давать обратно значения по завершении своих инструкций. Для возврата значения используется инструкция return.

    Инструкция return имеет следующий синтаксис:

    В программу, вызвавшую функцию, возвращается не само выражение, а результат его вычисления. Например, функция sum возвращает сумму двух чисел:

    Ссылка на основную публикацию
    Adblock
    detector