Встроенные Javascript функции
В javascript достаточно много функций, встроенных в синтаксис языка. Рассмотрим одну из них.
eval(строка)
Рассмотрим примеры использования функции eval:
Пользовательские Javascript функции
Синтаксис создания функции:
- Функция
в роли процедуры. Если функция выполняет какие-либо действия и не возвращает
значение:
В javascript вызов функции в роли процедуры происходит следующим образом:
Пример:
- Если
функция возвращает значение
В javaScript вызов функции, возвращающей значение, происходит, например, следующим образом:
То есть значение нужно либо вывести на экран, либо можно использовать в дальнейших выражениях.
Как
видно из примера, после return
функция
действительно завершает свою работу. Поэтому оператор alert("2")
выполняться
уже не будет.
Вызов же функции происходит
через присваивание. Вызов в данном примере можно также организовать
так: alert(sayHello());
,
но это не рекомендуемый вариант.
return
указывает
на возвращаемое значение функции, которое будет передано переменной при
следующей форме вызова:переменная
= имя_функции();
Javascript функции с параметрами (аргументами) и возврат значений
Рассмотрим
подробнее использование инструкции return
в
функции javascript на двух примерах. Кроме того, рассмотрим использование в
Javascript функции с параметрами (аргументами).
- функция
возвращает значение
undefined
, но выполняет какие-то действия:
userName
примет
то значение, которое указано в скобках при вызове
функции "Вася"
и "Петя"
.
Значит при первом вызове функция выведет в диалоговое
окно Привет
Вася
, при втором — Привет
Петя
.
- функция возвращает конкретное значение:
return
и
с инструкцией: в первом случае функция вызывается как оператор, возвращая
значение undefined
;
во втором случаем функция вызывается через присваивание, либо участвуя в
выражениях (см. ниже)Все способы создания пользовательских функций
- классический синтаксис
- явное
создание объекта
Function
или
- еще один вариант создания
Вызов функций во всех случаях будет:
Использование выражений с функциями
Обычное использование javascript функции:
Функция как составная часть выражения:
Во второй функции используется выражение, ссылающееся на первую функцию (в 11-й строке).
Рассмотрим другие варианты использования выражений с функциями (только для функций, которые возвращают результат):
Функция:
Варианты выражений:
- Вызов функции как часть выражения:
- Вызов функции в логических выражениях
- Вызов javascript функции в качестве параметра другой функции
Область видимости переменных. Javascript глобальные и локальные переменные в функции
Область видимости переменной — область кода, в котором переменная доступна для использования.
- Глобальные
переменные
- — создаются на уровне сценария и сохраняются до конца сценария;
- — объявляются до описания javascript функции;
- — могут быть причиной сложно находимых ошибок;
- Локальные переменные
- — создаются внутри фрагментов кода и не видны извне;
- — явно объявляются в теле javascript функции;
- — аргументы (параметры) функции — всегда локальные переменные;
- — лучше использовать локальные переменные, так как доступ к ним больше контролируется.
- — создаются на уровне сценария и сохраняются до конца сценария;
ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ
Рассмотрим конкретные примеры области видимости переменных в javascript при использовании глобальных и локальных переменных.
z
равно
6, а значение S
осталось
равным 2, то есть значению глобальной переменной, определенной во внешней
программеz
равно
6; значение переменной width
равно
2, то есть осталось без измененийz
и S
равны
6; S
—
глобальная переменнаяz
равно
6; переменная S
во
внешней программе не определена; переменная х
во
внешней программе не определенаРекурсивная функция javascript
Важно: В
информатике и программировании, а, соответственно, и в javascript, рекурсия —
это вызов функции из самой же функции, т.е. функция в
функции
Важно: В информатике и программировании, а, соответственно, и в javascript, рекурсия — это вызов функции из самой же функции, т.е. функция в функции
Бывают также косвенная или сложная рекурсия, когда функция вызывается не непосредственно из самой себя, а из вложенной в нее функции: например, функция
A
вызывает
функцию B
,
а функция B
—
функцию A
.
Количество вложенных вызовов функции или процедуры называется глубиной
рекурсии.
Рекурсия
javascript рассмотрена ниже на примере возведения числа в степень.
Для начала рассмотрим
итерационный вариант возведения в степень, т.е. с
использованием цикла:
for
Теперь выполним возведение числа в степень через рекурсию: