Раскрутка сайтов в Воронеже, продвижение, поисковая оптимизация, интернет-реклама, создание сайта, Воронеж, Липецк, Курск, Белгород, Тамбов, Орел - SEO vrn
Главная | Создание сайта | Раскрутка сайта | Дизайн сайта | Портфолио | Контакты
 
 
Главная
Создание сайта
Раскрутка сайта
Дизайн сайта
Портфолио
Контакты
Партнеры
Статьи
Домены
Хостинг
Как создать сайт
Как раскрутить сайт
Поддержка сайта
On-line реклама
Off-line реклама
Возможности Интернета

Ресурсы


Вoрoнеж ул. Ленинский прoспект д.119 oф.215
8 (915) 585 21 41
Ждем Вaс: пн-пт 9-19.

 
Главная arrow Как создать сайт arrow Принцип написания функций

Принцип написания функций

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

записать их один раз в самом начале, поставив впереди ключевое слово function, то есть, определив их как функцию.

Описание функции

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

function fct(a)

{ if (<а==0)||(a==l)) return 1;

else { var i=1;

for (a; a>1; a--) i*=a; return i; } }

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

function fct(a)

Это означает, что функция будет называться fct() (можно использовать любое незарезервированное сочетание символов), а ее аргумент мы пока условно обозначили “а”.

Далее идет, собственно, “тело” функции, которое должно быть заключено а в фигурные скобки. В первой ее строке

if ((а==0)||(а==1)) return 1;

мы проверяем, не равен ли аргумент 0 или 1, и если это так, то функция возвращает результат — 1. Для возвращения результата применяется one- ратор return,

Если же аргумент не равен 0 или 1, выполняется следующий блок (идущий после ключевого слова else). Здесь мы определяем временную переменную i, в которую будем сохранять промежуточные результаты. Затем организуем цикл, причем в качестве счетчика используем сам аргумент, чтобы не вводить еще одну переменную. Запись i*=a — это просто сокращенная форма записи i=i*a, то есть мы перемножаем значения i и а, присваивая результат переменной i. Кстати, такая сокращенная форма записи существует для всех арифметических и логических операций, то есть можно записать х+=2 вместо х=х+2; z%=y вместо z=z%y и т. д.

Теперь, когда функция написана, ее можно вызвать из любого места. Например, если мы напишем где-нибудь выражение x=fct(5), то переменной х будет присвоено значение факториала от числа 5, то есть 120.

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<ТITLЕ>Вычисление факториала</ТITLЕ>

<SCRIPT> function fct(a) {

if ((a==0)||(a==l)) return 1;

else

{

var i=l; for (a; a>1; a--) i*=a; return i;

} } </SCRIPT>

</HEAD>

<BODY>

<SCRIPT>

var q; q=prompt ("Введите целое число от 0 до 170", "5");

q=parselnt(q) ;

if (isNaN(q)) alert ("Должно быть введено ЧИСЛО в пределах от 0 до 170");

else if (<q<0)||(q>170)) alert ("Число должно быть в пределах от 0 до 170") ;

else document.write(q+"l = "+fct(q)+"<BR>");

</SCRIPT>

</BODY>

</HTML>

При загрузке этой веб-страницы пользователю будет предложено ввести число в пределах от 0 до 170 поскольку для отрицательных чисел факториал не определен, а для чисел, больших 170, обычным способом вычис лить его не удастся — возникнет переполнение, и интерпретатор JavaScript выдаст в качестве результата ключевое слово Infinity, то есть бесконечность). Затем с помощью функции parselnt() мы выделяем из введенной строки целое число (если это не удается — выдается предупреждающее сообщение). Затем мы проверяем, входит ли это число в “разрешенный” диапазон (от 0 до 170). И, наконец, если все правильно, записываем результат, “попутно” вызывая нашу функцию fct().
 
 
UP
UP