Javascript создание пользовательских функций

JavaScript

В javascript достаточно много функций, встроенных в синтаксис языка. Рассмотрим одну из них.

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

var y = 5; // значение у равно 5 var x = "if (y==5) y*2-3"; // значение х равно строке символов var rezult = eval(x); // rezult равно 7

Пользовательские Javascript функции

Синтаксис создания функции:


    Функция в роли процедуры. Если функция выполняет какие-либо действия и не возвращает значение:

function имя_функции(аргументы) код; >
имя_функции (аргументы); // с агрументами имя_функции (); // без аргументов
function sayHello()  alert("hello"); > //. sayHello();
function имя_функции(аргументы) код; return результат или выражение >
var a = имя_функции (аргументы); alert(a); var b = a + a;

Как видно из примера, после return функция действительно завершает свою работу. Поэтому оператор alert(«2») выполняться уже не будет.
Вызов же функции происходит через присваивание. Вызов в данном примере можно также организовать так: alert(sayHello()); , но это не рекомендуемый вариант.

Важно: Таким образом, оператор return указывает на возвращаемое значение функции, которое будет передано переменной при следующей форме вызова:
переменная = имя_функции();

Javascript функции с параметрами (аргументами) и возврат значений

Рассмотрим подробнее использование инструкции return в функции javascript на двух примерах. Кроме того, рассмотрим использование в Javascript функции с параметрами (аргументами).

function sayHello(userName)  alert("Привет " + userName); > sayHello("Вася"); sayHello("Петя");

В примере функция имеет один аргумент, указанный в скобках. Переменная userName примет то значение, которое указано в скобках при вызове функции «Вася» и «Петя» . Значит при первом вызове функция выведет в диалоговое окно Привет Вася , при втором — Привет Петя .

function sayHello(userName)  return "Привет " + userName; > var a = sayHello("Вася"); alert(a);

Важно: Обратите внимание на разницу между вызовом функции без инструкции return и с инструкцией: в первом случае функция вызывается как оператор, возвращая значение undefined ; во втором случаем функция вызывается через присваивание, либо участвуя в выражениях (см. ниже)

Все способы создания пользовательских функций

function a1(x, y)  return x + y; >
//обязательным является только последний аргумент – тело функции var a1 = new Function('x', 'y', 'return x + y');
var a1 = new Function('return "hello"');
var a1 = function(x, y)  return x + y; >;

Вызов функций во всех случаях будет:

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

Обычное использование javascript функции:

function sum(arg1,arg2)  var a=arg1+arg2; return a; > var b=sum(1,2); alert(b);

Функция как составная часть выражения:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
function sum(arg1,arg2)  var a=arg1+arg2; return a; > var b=sum(1,2); alert(b); function add()  var c=1+sum(1,2); return c; > var d=add(); alert(d);

Во второй функции используется выражение, ссылающееся на первую функцию (в 11-й строке).

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

function plRectangle(width, height) var S = width * height; return S >


    Вызов функции как часть выражения:

if (plRectangle(a, b) > plRectangle(c, d)) alert("Первый прямоугольник больше второго");
var х = "25рх"; var у = 12; var S = plRectangle(parselnt(x), у);

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

Область видимости переменной — область кода, в котором переменная доступна для использования.

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

ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ

Рассмотрим конкретные примеры области видимости переменных в javascript при использовании глобальных и локальных переменных.

var S = 2; // Глобальная переменная S function plRectangle(width, height) var S = width * height; return S // Локальная переменная S > z = plRectangle(2, 3); alert(z); alert(S);

Пример: Значение z равно 6, а значение S осталось равным 2, то есть значению глобальной переменной, определенной во внешней программе

function plRectangle(width, height)  var s = width * height; // аргументы всегда локальны width = width + 10; return s > width = 2; height = 3; z = plRectangle(width, height); alert(z); alert(width);
var S = 2; // Глобальная переменная S function plRectangle(width, height)  S = width * height; // заменяем глобальную переменную: return S // S - глобальная переменная (т.к. без определения var) > var z = plRectangle(2, 3); alert(z); alert(S);
function Plrectangle(width, height) S = width * height; //глобальная переменная return S > z = Plrectangle(2, 3); S=2; // изменяем глобальную переменную alert(z); alert (S);
function plRectangle(width, height)  var S = width * height; var x = 17; return S > z = plRectangle(2,3); alert(z); alert(x); // не определена во внешней программе alert (S); // не определена во внешней программе

Пример: Значение z равно 6; переменная S во внешней программе не определена; переменная х во внешней программе не определена

Рекурсивная функция javascript

Важно: В информатике и программировании, а, соответственно, и в javascript, рекурсия — это вызов функции из самой же функции, т.е. функция в функции

Бывают также косвенная или сложная рекурсия , когда функция вызывается не непосредственно из самой себя, а из вложенной в нее функции: например, функция A вызывает функцию B , а функция B — функцию A . Количество вложенных вызовов функции или процедуры называется глубиной рекурсии.

Рекурсия javascript рассмотрена ниже на примере возведения числа в степень.
Для начала рассмотрим итерационный вариант возведения в степень, т.е. с использованием цикла:

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

Теперь выполним возведение числа в степень через рекурсию:

Меню

Автор: Салихов Кирилл | TurboSite | Дизайн: Switchroyale

Источник

Пользовательские функции в JavaScript

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

О работе с функциями в JavaScript мы уже подробно писали в этой статье, поэтому повторяться не будем. Однако стоит добавить следующее: существуют как встроенные, так и пользовательские функции JavaScript. Например, встроенная функция alert() запускает в браузере окно с каким-нибудь текстом и специальной кнопкой для подтверждения. Пока это окошко висит в браузере, выполнение скриптов будет приостановлено. Для продолжения работы пользователю надо просто нажать на кнопку «OK», тем самым подтвердив, что он ознакомлен с выведенной в окошке информацией:

js_prompt_01_1-20219-bf7324.jpg

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

Но для начала не мешало бы вспомнить схему написания пользовательской функции. В JavaScript она создаётся так: 1) пишем ключевое слов function; 2) пишем имя функции со скобками, не забываем ставить пробел; 3) записываем нужный нам код в фигурных скобках:

 
// создание функции в JavaScript function имя_функции()  блок кода; > // вызов функции имя_функции(); 

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

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

Итак, переходим к нашей пользовательской функции:

 
function privetstvie()  alert("Привет,"); alert("как"); alert("дела?"); > 

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

Результатом работы этого JavaScript-кода станет последовательный вывод трёх окошек следующего содержания:

Источник

Читайте также:  Чем открыть документ javascript
Оцените статью