русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Определение и вызов функций


Дата добавления: 2015-07-09; просмотров: 506; Нарушение авторских прав


 

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

• имя функции;

• заключенный в круглые скобки необязательный список имен параметров, разделенных запятыми;

• JavaScript_инструкции, составляющие тело функции, заключенные в фигур_ ные скобки.


 

140 Глава 8. Функции

В примере 8.1 показаны определения некоторых функций. Хотя эти функции короткие и простые, они содержат все перечисленные здесь элементы. Обратите внимание: в функциях может быть определено различное количество аргумен_ тов, функции также могут содержать или не содержать инструкцию return. Ин_ струкция return была описана в главе 6; она прекращает выполнение функции и возвращает значение указанного в ней выражения (если оно есть) вызываю_ щей стороне; при отсутствии выражения инструкция возвращает значение unde_ fined. Если функция не содержит инструкцию return, она просто выполняет все инструкции в своем теле и возвращает неопределенное значение (undefined).

 

Пример 8.1. Определение JavaScript'функций

// Функция_обертка, иногда ее удобно использовать вместо document.write().

 

// В этой функции отсутствует инструкция return, поэтому она не возвращает значение. function print(msg)

 

{

document.write(msg, "<br>");

}

 

// Функция, вычисляющая и возвращающая расстояние между двумя точками.

function distance(x1, y1, x2, y2)

{

 

var dx = x2 _ x1; var dy = y2 _ y1;

 

return Math.sqrt(dx*dx + dy*dy);

}

 

// Рекурсивная функция (вызывающая сама себя), вычисляющая факториалы.

 

// Вспомните, что x! – это произведение x и всех положительных целых чисел, меньших х. function factorial(x)



 

{

 

if (x <= 1) return 1;

 

return x * factorial(x_1);

}

 

Будучи один раз определенной, функция может вызываться с помощью операто_ ра (), описанного в главе 5. Как вы помните, скобки указываются после имени функции, а необязательный список значений (или выражений) аргументов ука_ зывается в скобках через запятую (фактически перед круглыми скобками может указываться любое JavaScript_выражение, которое возвращает значение_функ_ цию). Функции, определенные в примере 8.1, могут быть вызваны следующим образом:

 

print("Привет, " + name);

 

print("Добро пожаловать на мою домашнюю страницу!"); total_dist = distance(0,0,2,1) + distance(2,1,3,5);

print("Вероятность этого равна: " + factorial(5)/factorial(13));

 

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


 

8.1. Определение и вызов функций
   

 

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

 

JavaScript – язык с нестрогой типизацией, поэтому тип параметров функций указывать не требуется, и JavaScript не проверяет, соответствует ли тип данных требованиям функции. Если тип аргумента важен, вы можете проверить его са_ мостоятельно с помощью оператора typeof. Кроме того, JavaScript не проверяет, правильное ли количество параметров передано функции. Если аргументов больше, чем требуется функции, то дополнительные значения просто игнориру_ ются. Если аргументов меньше, то отсутствующим присваивается значение un_ defined. Некоторые функции написаны так, что могут достаточно терпимо отно_ ситься к нехватке аргументов, другие ведут себя некорректно, если получают меньшее число аргументов, чем предполагалось. Далее в этой главе мы познако_ мимся с приемом, позволяющим проверить, правильное ли количество аргумен_ тов передано в функцию, и организовать доступ к этим аргументам по их поряд_ ковым номерам в списке аргументов, а не по именам.

 

Обратите внимание: в функции print() из примера 8.1 нет инструкции return, по_ этому она всегда возвращает значение undefined, и использовать ее в качестве час_ ти более сложного выражения не имеет смысла. А функции distance() и facto_ rial() могут вызываться в более сложных выражениях, что было показано в пре_ дыдущих примерах.

 



<== предыдущая лекция | следующая лекция ==>
Функции | Функциональные литералы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.112 сек.