Return в javascript - IT Справочник
Llscompany.ru

IT Справочник
12 просмотров
Рейтинг статьи
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 Возврат значений функцией

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать еще:  Java method invoke

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

Функция (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.

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

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

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

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

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

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

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

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

    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, посредством которого можно обратиться к аргументам внутри функции. Описываются параметры функции на этапе её объявления в круглых скобках.

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

    В языке 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 не указать возвращаемое значение.

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

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

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

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

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

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

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

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

    Рекурсия

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

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

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

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

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

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

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

    Функции в JavaScript

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

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

    Замечательно то, что функция НЕ выполнится, если не будет вызвана.

    Записываются функции в общем виде следующем виде:

    Читать еще:  Javascript console error

    К именам функций существуют те же требования, что и к именам переменных. Важно помнить, что функция — это особый вид переменных в JavaScript, поэтому задавать одинаковые имена для функции и для переменной НЕЛЬЗЯ.

    Например, нам нужна функция, которая печатает в тело документа сегодняшнее число.

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

    Обязательны и круглые скобки после имени функции. Они могут оставаться пустыми, а могут содержать аргументы функции. Например, функция выводит нам приветствие в диалоговом окне alert():

    Вызов функции без аргументов

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

    Что можно записывать в функциях JavaScript

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

    • объявление переменных ( var, let, const );
    • арифметические операции (сложение, вычитание и т.д.);
    • условные конструкции — if. else , switch. case , тернарный оператор;
    • любые виды циклов — for() , while() , do. while() , for. in ;
    • вызов других функций.

    Например, функция должна нам построить таблицу в зависимости от переданных аргументов — количества строк и столбцов. Мы будем использовать в коде функции объявление переменной table и вложенные циклы:

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

    Проверить четность числа

    В функции использована условная конструкция if. else и тернарный оператор.

    Оператор return

    Оператор return позволяет вернуть значение из функции, т.е. получить результат для дальнейшего использования в коде. Этот результат можно записать (присвоить) в какую-либо переменную, использовать в дальнейшем коде для вычислений, например, или вывести на html-страницу.

    С помощью return можно возвращать логические значения ( true или false ), результат вычислений (число), строку или даже объект. Следует понимать 2 особенности, связанные с этим оператором:

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

    Рассмотрим простой пример. У нас есть функция, которая считает сумму 2-х чисел. Можно использовать ее для того, чтобы сложить несколько чисел и суммы этих чисел. Вот код:

    Посчитать сумму чисел

    Рассмотрим пример посложнее. Нам необходимо создать объект на html-странице, причем не один, а несколько (в примере будет 2 — div и абзац). Выполняться это будет в функции. Затем в основном коде для каждого из элементов задается класс, описанный в стилях.

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

    Примечание: данный скрипт должен быть размещен в body, и перед тегом Посчитать сумму строк

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

    Посчитать сумму чисел с проверкой

    Здесь оператор «+» преобразует строку в число, если строка вида «12», «-14» и т.д. В случае строки «abcd12» происходит преобразование в тип NaN (Not a Number) и вычисление суммы не выполняется. Выводится сообщение об ошибке и возвращается 0 (ноль). Обратите внимание, что после оператора return выполнение функции прекращается.

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

    Еще немного про аргументы функций в Javascript

    В Javascript существует псевдомассив аргументов функции, который так и называется — arguments. И, если точное количество аргументов неизвестно, то можно воспользоваться этим массивом. Он имеет свойство length, как и обычные массивы, но методы массивов push() , pop() и т.д. вы к нему применить не сможете.

    Рассмотрим использование этого массива на примере функции суммы:

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

    Но в этом случае ничего не получится, т.к. ни количества строк, ни количества столбцов у нас нет. Для того чтобы это изменить, мы можем воспользоваться таким подходом:

    В первой строчке сценария функции мы проверяем, а существует ли значение для переменной row, и если она равна undefined, т.е. значения нет, то присваиваем ей значение 2. Во второй строке можно присвоить переменной cols одно из значений — либо переданное в функцию, либо, если параметр не был передан, т.е. он равен undefined, мы назначаем опять-таки значение 2.

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

    Типы функций в Javascript

    Все функции, которые мы рассматривали до сих пор, относятся к категории Function Declaration, т.е. функции объявленной. Кроме того, существует тип функций Function Expression, т.е. функции-выражения. Посмотрите на разницу между их объявлением:

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

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

    Declaration vs Expression

    Для того чтобы увидеть ошибку, нужно открыть консоль браузера (F12 и Esc).

    Так вот в этом простом примере мы не увидели второго окна alert() , т.к. функция func_expression() была вызвана ДО ее объявления. И это вызвало ошибку интерпретатора, т.к. Function expression НЕ вычисляется до выполнения javascript, из-за того, что является операцией присваивания переменной. Поэтому вызов function expression нельзя осуществлять до объявления самой функции, так как переменная на тот момент содержит undefined . Именно поэтому хорошим стилем кода на JavaScript является объявление всех функций в верхней части скрипта.

    Что же касается Function declaration, то Javascript выявляет все определения таких функций и переносит их в начало сценария. Т.е. если в коде присутствуют такие функции, то javascript знает о них еще до выполнения сценария. Именно поэтому не важно, в каком месте кода вызывается Function declaration. Но все-таки, если есть возможность, объявляйте функции в начале сценария.

    Области видимости переменных

    Когда вы создаете переменные в своем основном коде, они видны везде — и в циклах, и в условных конструкциях, и в функциях. Но переменные, созданные внутри функции с помощью ключевого слова var НЕ видны, т.е. неизвестны за пределами этой функции. Т.е. при попытке обратиться к ним будет выдана ошибка, т.к. переменная не существует.

    В примере ниже глобальная переменная a перезаписывается внутри функции func() , а затем и во внутренней функции innerFunc() . А это далеко не всегда приводит к нужным результатам в процессе выполнения кода.

    Ссылка на основную публикацию
    ВсеИнструменты 220 Вольт
    Adblock
    detector