Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Что такое HTTP 16 страница




В этой главе вы найдете только введение в JavaScript. Глава 18 охватывает конкретные вопросы, связанные с обработкой пользовательского ввода. Затем в главе 19 мы обсудим еще один специальный вопрос о связи Dynamic HTML и JavaScript. Что касается данной главы, то она имеет следующие разделы:

  • основы JavaScript — что это, зачем и какие возможности предоставляет;
  • создание первого примера с JavaScript: внедрение и связывание; • создание и использование функций;
  • синтаксические структуры языка: переменные, условия, циклы, операторы сравнения;
  • принципы работы объектов и методов, некоторые объекты, которые вы можете использовать.

Что такое JavaScript?

JavaScript — это язык написания скриптов. Он похож на AppleScript, VBScript — собственно нечто, на всю линейку языков написания скриптов. Хотя его интерфейс очень похож на интерфейс полноценных программных языков, таких как С, C++ и Java, не нужно сильно заботиться о том, что стоит за этим сходством. Структура JavaScript по сравнению с ними несколько ограничена, что не умаляет его значения для веб-приложений.

JavaScript был разработан компанией Netscape для совместной работы с HTML (и XHTML) и создания более динамичных и интерактивных страниц. Браузеры Netscape и IE имеют полную поддержку JavaScript, начиная с 3.0, тогда как другие — только частичную и не всегда корректную. Зачастую вы не можете рассчитывать на то, что все ваши пользователи имеют браузеры с поддержкой JavaScript, при написании caйтов нужно учитывать это. Мы еще вернемся к данному вопросу в этом разделе.

ПРИМЕЧАНИЕ

Реализация JavaScript от Microsoft носит название JScript. В целом оба варианта представля ют собой примерно одно и то же, однако в JScript есть несколько отличающихся команд. Тем не менее они являются вполне законными последователями официального стандарта ECMAScript (http://www.ecma.ch/ecmal/STAND/ECMA-262.HTM). ЕСМА — это европейская ассоциация производителей вычислительной техники, установившая ряд спецификаций, которым, в частности, подчиняются языки JavaScript и JScript.

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

Рис. 17.1. С помощью JavaScript можно, например, проверять, все ли необходимые поля формы заполнены, причем делать это еще до того, как данные будут отправлены на сервер для обработки CGI-скриптом

JavaScript не входит ни в старый стандарт HTML, ни в новый XHTML, несмотря на то что он используется почти всегда с HTML-страницами и в обоих стандартах есть элемент <script>. Более того, JavaScript и его ближайшие родственники явля ются основной составляющей того, что называется Dynamic HTML, в котором, кроме него, используются таблицы стилей и другие интересные инструменты, позво ляющие создавать действительно интерактивные веб-страницы.

Какое отношение имеет JavaScript к Java?

Следует помнить, что JavaScript и Java — это не одно и то же, они вообще не имеют друг к другу никакого отношения, за исключением, пожалуй, названия. Посудите сами: Java — это полноценный язык программирования, созданный компанией Sun Microsystems в духе C++. Он предназначен для профессиональных или полупрофессиональных программистов и имеет следующие широкие возможности.

  • Во-первых, это современный язык программирования, который знают и которым интересуются тысячи серьезных программистов, пишущих на С и C++.
  • Во-вторых, это нечто большее, чем обычный компьютерный язык программирования. Он ориентирован на технологию виртуальных машин и систем, — это означает, что Java-программы могут работать на самых разных платформах.

Многие веб-браузеры имеют поддержку Java, организованную примерно в такой же манере, как поддержка мультимедиа. Приложения могут работать прямо в окне браузера, вызывая у пользователя ощущение, будто он работает с программой, установленной на его жестком диске.

Концепция виртуальных машин становится настолько сильна, что рано или поздно наступит время, когда во главе всех языков программирования встанет что-нибудь Java-подобное. Идея состоит в некотором упрощении клиентских Java-машин.

Обычно программная начинка компьютера определяется тем, какое ПО и какая ОС на ней установлены. Например, невозможно работать с Mac-программами на компьютере с Windows. Почему? Да потому, что программы для Macintosh рассчитаны на другой процессор и другое оборудование, нежели то, что используется Microsoft Windows.

Однако Java создаст стандартный компьютер, то есть виртуальную машину, базируясь исключительно на программных элементах. Таким образом, вместо того чтобы программировать «под Мас» или «под Windows», можно создавать приложения для виртуальных машин, которые при их использовании разными компьютерными платформами практически ничем не отличаются. Поскольку виртуальная машина создастся браузером, то программы, написанные на Java (в данном контексте более уместно называть их «апплетами»), можно запускать непосредственно в его окне.

Но на сегодняшний день истина заключается в том, что виртуальные машины Java еще не подмяли под себя настольные компьютеры, поэтому все-таки приходится писать разные приложения под Mac, Windows, Unix, Linux и т. д. По крайней мере, по-разному их компилировать. То есть существуют «настольные» Java-приложения для обычных компьютеров и сетевые программы. Но помимо всего этого Java является популярным языком программирования, и программное обеспечение обоих типов сегодня пишется именно на нем.

Почему же столь похожи названия JavaScript и Java? Оказывается, это не случайно. Дело в том, что JavaScript, не являясь полноценным языком, использует синтаксис команд, который очень сильно напоминает Java. Язык Java — прямой наследник C++, а тот, в свою очередь, немало взял от С. Это не только историческая справка, но и намек на то, что программисты, знакомые хотя бы с одним из этих современных объектно-ориентированных языков программирования, с легкостью освоят JavaScript.

JavaScript или VBScript?

На сегодняшний момент JavaScript — самый популярный язык написания скрип тов. VBScript сильно отстает, но все же занимает почетное второе место среди язы ков для написания веб-сценариев. И это несмотря на то, что он поддерживается только технологией Microsoft и единственным типом браузеров — Internet Explorer для Windows.

В чем же особенность VBScript? Это язык, рекомендованный для элементов управления ActiveX (это такая разновидность Java-апплетов, придуманная Microsoft). К тому же он очень похож на Visual Basic, популярный язык программирования под Windows. И Java, и JavaScript являются платформонезависимыми языками, тогда как VBScript вместе с ActiveX предназначен только для Windows.

Эта и последующие две главы рассказывают только о JavaScript, потому что это язык, являющийся кроссплатформенным и использующий наиболее понятный синтаксис. И все же оговорюсь, что если вы намерены написать специализирован ный сайт, рассчитанный исключительно на продукцию Microsoft (например, для каких-нибудь внутренних сетей), если вы привыкли работать с элементами ActiveX или если вы — профессиональный программист на VB, то можете попробовать применить VBScript для создания скриптов.

Как работает веб-скрипт

Обратимся к рассмотрению двух основных концепций, на которых держатся веб-скрипты: «функции» и «обработка событий».

В большинстве скриптов имеются две секции: одна из них расположена в <head> веб-документа, другая — внутри <body>. В первой содержатся функции, а во BTO рой — вызовы этих функций.

Вызовы функций к обработке данных имеют косвенное отношение. Собственно коды алгоритмов находятся в секции, расположенной в <head>. Что же тогда дела ют вызовы? Они передают в функции фактические аргументы, то есть значений переменных, необходимых для их работы. Функции, приняв вызов, начинают выполнять алгоритм, содержащийся в нем. То есть что-нибудь считать, преобразо вывать и т. д., затем возвращают результат.

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

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

ПРИМЕЧАНИЕ

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

Ввод скриптов в веб-документы

JavaScript — это еще одна составляющая, являющаяся обычным текстом. Для написания скриптов вам не потребуется никаких специальных приложений. То есть нужно иметь какой-нибудь текстовый редактор попроще, чтобы он не занимался самодеятельностью в виде попыток как-нибудь отформатировать набранный код или сохранить его в каком-нибудь замысловатом формате. Ничего подобного нам не требуется. Также под рукой полезно иметь руководство разработчика по JavaScript от компании Netscape, которое вы можете найти по адресу: http://devetoper.netscape.com/ docs/manuals/js/client/jsguide/index.html. Ну и конечно, нужно не забывать тестировать свои скрипты на максимальном количестве доступных браузеров: Internet Explorer, Netscape разных версий. Если вы используете JavaScript для деловых или организационных целей, то этап тестирования особенно важен.

При работе с JavaScript в вашем словаре появляется новый элемент HTML: <script>. Хотя он и является типичным контейнером XHTML, необычно то, что его придется прятать внутри страницы.

Элемент <script> и скрытие скрипта

Элемент <script> обозначает начало и конец блока, содержащего команды скрипта. Он является контейнером, имеет атрибут type, позволяющий указать название языка, на котором был написан скрипт (по умолчанию им считается JavaScript).

ПРИМЕЧАНИЕ

Чтобы отдать дань в первую очередь совместимости с древними браузерами (IE и Netscape версий младше чем 3.0), можно включить в состав <script> атрибут language="JavaScript". Современные браузеры могут обойтись без этого, но одновременное использование и type, и language избавит вас от множества проблем.

Например:

<script type="text/javascript">
Определения функций скрипта
</schpt>

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

Обманем несовместимые с JavaScript браузеры с помощью такой уловки. За комментируем команды скрипта. Поскольку элементы HTML и JavaScript, обозначающие комментарии, отличаются друг от друга, это действительно возможно:

<script type="text/javascript">
<!--команды скрипта
II -->
</script>

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

Может быть, вы даже заметили, что закрывающий тег комментариев начинается с двойной косой черты (//). Это сделано для того, чтобы не ругался JavaScript, увидев --> (с его точки зрения это два знака «минус» и знак «больше»). Приходится комментировать комментарий, используя соответствующий синтаксис JavaScript.

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

<scrlpt type="text/javascript">
<!--
команда скрипта II Комментарий к команде
...команды скрипта
/* Если нужно вставить длинный комментарий.
поместите его между такими значками */
// Этот комментарий предшествует закрывающему тегу комментария -->
</script>

Итак, есть два типа комментариев: однострочные и многострочные. Однострочные составляются из двух косых черт (//) и служат для тех комментариев, которые могут целиком уместиться на одной строке. Многострочные представляют собой комбинацию из косой черты и звездочки (/*) — тогда это открывающий тег - либо из этих же символов, но в обратном порядке (*/) — тогда это закрывающий тег. Первый и второй могут располагаться на разных строках, а значит, комментарий может быть настолько длинным, насколько потребуется.

СОВЕТ

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

Strict или Transitional?

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

Причиной таких хитрых действий по укрыванию кода, нетипичного для XHTML,
является то, что некоторые общие символы могут по-разному восприниматься в XML.
(A XHTML — это HTML-часть XML.) В результате, например, символы < и & могут
внезапно оказаться принадлежащими XML, хотя на самом деле принадлежат скрипту.
Итак, как же выйти из этой ситуации? Скройте код скрипта, как показано в примере:

<!DOCTYPE html PUBLIC "\//W3C//DTD
XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtmll/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> Строгое скриптирование </title>
<script type="text/jayascript">
<![CDATA[
...команды скрипта...]]>
</script>
</head>
</html>

Вы уже заметили разницу? Анализатору XML говорится: «Это не твоя область компетенции» с помощью тегов <![CDATA[ и ]]>. По крайней мере, такой подход является официальной рекомендацией. Проблема в том, что этот метод скрытия кода во многом остается теоретическим. Может быть, в будущем его и будут применять, но пока что эти теги просто не работают. Так что внедрять коды JavaScript и при этом оставаться в рамках XHTML Strict просто не получается.

Если вам действительно принципиально иметь DTD для XHTML Strict, могу посоветовать лишь одно — метод связывания. Берете все объявления функций скрипта (это то, что раньше было в секции <head>), помещаете их в отдельный документ и связываете с ним свою веб-страницу. Это будет выглядеть следующим образом:

<head>
<title>Связывание с JavaScript</title>
<script type="text/javascript" src="script_funct1ons.js">
</Script>
</head>

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

Это, наверное, единственный способ избежать этой непонятной игры в кошки-мышки со старыми браузерами.

ПРИМЕЧАНИЕ

Впрочем, можно отказаться от следования строгому стандарту XHTML на страницах, содержащих JavaScript. (Я так и буду делать в этой и последующих двух главах.) Между прочим, есть еще одна проблема: к тому времени, как Сеть полностью перейдет на стандарт XHTML Strict, могут измениться требования к скриптам, внедренным в страницы.

Скрипты и элементы <meta> и <noscript>

вообще-то, каждый экземпляр элемента <script> на странице должен иметь атрибут type, хотя далеко не всем браузерам это действительно необходимо. Это требование можно обойти, если в начало страницы вставить элемент <meta>, который задаст значение type по умолчанию. <meta> должен быть расположен в секции <head>:

<head> <title>JavaScript no умолчанию</title>
<meta http-equiv="Content-Script-Type" content=
"text/javascript" />
</head>

Когда у вас на странице будет не один скрипт, а много, вы оцените необходимостн
<meta>.

Обработчики событий JavaScript (в том случае, когда функции скрипта вызым ются из самой веб-страницы) не позволяют указывать type скрипта. Поэтому остается лишь положиться на <meta> (или же предоставить браузеру возможность угадывать самостоятельно).

Наконец, XHTML предлагает использовать контейнерный элемент <noscript>,ко торый сосуществует со <scri pt> и позволяет написать альтернативную HTML разметку для тех браузеров, которые не могут ничего поделать со скриптами. Вря зультате код выглядит следующим образом:

<body>
<script type="text/javascript">
//<![CDATA[.. функции...II ]]>
// -->
</script>
<noscript>
<р>Похоже. ваш браузер не поддерживает JavaScript. Для вас есть
<а href="noscri pt.html ">альтернативная страница</а>
</noscript>
</body>

Давайте соберем все полученные знания в одном шаблоне и рассмотрим небольшой пример.

Пример «Hello World»

Говорят, первая в мире программа в результате своей работы выдала на устройство вывода следующее: «Hello World». Эта фраза стала исторической, и с тех пор при изучении любого языка первая программа традиционно делает то же самое. Наш пример покажет основные приемы, используемые при написании кода скрипта и при его скрытии. Вы, вероятно, поймете и то, как работает сам элемент <script> Для того чтобы до конца понять данный пример, нужно познакомиться с. одной новой командой: document. writelnO, в JavaScript это называется «метод». Определение метода — это такая функция, которая встроена в какой-либо объект, с помо щью метода объект может автоматически производить определенные действия. В данном случае объект может автоматически производить «запись» в «документ». Другими словами, метод document. writelnO выводит текст на веб-страницу.

Листинг 17.1 — это полноценный документ HTML, в который включен небольшой скрипт на языке JavaScript.

Листинг 17.1. Пример «Hello World»

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.
org/TR/xhtmll/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www. w3.org/1999/xhtml "> <head>
<title> Hello World </title>
<meta http-equiv="Content-Script-Type" content=
"text/javascript" /> </head>
<body>
<script language="JavaScript">
<!- прячем скрипт
document.writeln("<hl>Hellо World!<\/h1>")
//закончили прятаться --> </script>
<noscript>
<р>Ваш браузер не поддерживает JavaScript</p>
</noscript>
</body>
</html>

Обсудим некоторые моменты, встретившиеся нам в этом примере:

  • Контейнер <scr1 pt> вставлен прямо в секцию <body> документа. Так обычно и делается, когда вы используете скрипт для создания чего-либо внутри тела вебстраницы и вам не нужно предварительно описывать функции в <head>. Когда вы имеете дело с более сложными скриптами, конечно, вам не обойтись без элементов <script> и в одной, и в другой секции документа.
  • В команде document. writeln() закрывающий тег </h1> действительно выглядит как <\/h1>, это не опечатка. Если написать обычный закрывающий тег, то он будет восприниматься методом document. wri tel n () как-то по-своему. Чтобы этого не произошло, вставляют специальный символ (одним из набора этих спецсимволов является «новая строка», /п). В данном случае обратная косая черта (\) позволяет скрипту пропустить прямую (/).
  • Поскольку есть элемент <meta>, вам не нужны атрибуты type в элементах <script>. Тем не менее, атрибут language, как видите, по-прежнему присутствует для совместимости.

Рис. 17.2. Корректный результат выполнения скрипта из примера «Hello World»

Сохраните документ под каким-нибудь именем типа helloworld.html и откроите его в браузере. Если все в порядке и с набранным кодом, и с браузером, вы должны увидеть то же самое, что изображено на рис. 17.2. Если ваш браузер не умеет работать с JavaScript, то вы увидите только сообщение об этом (содержащееся в контейнере <noframes>) и ничего более.

Создание функций на JavaScript

Функцию можно представить себе как мини-программу внутри скрипта. Вообще-то, предназначение функции состоит в том, чтобы выполнять какое-то одно задание и возвращать результат в вызвавшую ее программу. Работа функции начинается с передачи в нее значений переменных. Они, конечно, не просто так передаются, а используются в вычислениях. Затем, в большинстве случаев, функция возвращает новое значение в тело скрипта.

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

  • Во-первых, функции не обязательно использовать в каком-то одном установленном порядке (так же как не обязательно в приложениях под Windows или Маc щелкать на кнопках в каком-то определенном порядке). Поэтому не нужно думать, в каком порядке располагать описания функций, — когда они понадобятся, с помощью технологии вызовов обработчиков событий их запустят, да еще и не один раз.
  • Во-вторых, функции могут использоваться многократно для обработки изменившихся значений переменных и получения, соответственно, изменившегося результата. То есть исходные данные разные, функция одна и та же, а результат — новый. Если вы напишете достаточно гибкую функцию, это свойство поможет несколько сэкономить время по сравнению с программированием каким-то иным способом. Все это замечательно, но функции должны быть объявлены, то есть определены (в серьезных языках программирования «объявление» функции и ее «определение» - это несколько разные вещи). Обычно это делается в секции <head> веб-документа. После этого функцию нужно вызвать (запустить), причем это действие обычно осуществляется непосредственно на странице.

Объявление функций

Что значит «объявление функции»? Объявляя функцию, вы говорите браузеру: «Я собираюсь завести себе вот такую маленькую функцию, и вот то, что она будет уметь». Когда браузер загрузит страницу, он увидит ваше послание и будет знать, куда бежать, если вдруг случится вызов какой-либо функции.

Большинство программистов справедливо предпочитают размещать объявления функций в разделе <head>, хотя это не является официальным требованием. С технической точки зрения, функции могут быть определены (объявлены) где угодно, хоть в самом конце страницы. Объявление располагается внутри контейнера <script>, причем не обязательно только одно. На самом деле, JavaScript в этом смыc ле ведет себя несколько загадочно, поскольку все элементы <script>, составленные вместе, как раз и составляют весь скрипт.

Рассмотрим формат определения функции:

<script type="text/javaschpt"> <!-- прячем скрипт
function имя_функции(формальный_параметр) {
...над функции...
return (новое_значение)
// закончили прятаться -->
</script>

Помните, что, когда скрипт вызывает функцию, он часто передает в нее фактический параметр, который подставляется вместо формального. Нужно не забыть указать имя формального параметра. Если функция предназначена для выполнения простых вычислений, можно дать переменной какое-нибудь имя типа first_num. Затем его можно использовать в формулах: newjium=first_num+ 3.

Давая имя входному параметру функции, вы тем самым создаете переменную. Компьютер резервирует для ее размещения некоторый отрезок памяти и дает ему имя. Можно присвоить ему какое-нибудь значение, а потом даже использовать в своем скрипте. Например:

1. В теле скрипта посылаем значение 5 в функцию.

2. Функция получает значение и создает переменную myjiumber, которой его и присваивает.

3. Затем вы говорите скрипту: «Прибавь 10 к моей переменной myjiumber» (newjium-ber=my_number+10).

4. Если вы все сделали правильно, скрипт возвращает результат и сохраняет его в переменной new_number.

5. В тело программы передается получившееся значение. Ответ — 15.

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

А еще обратите внимание на то, что вся вычислительная часть объявления располагается между function и return и между двумя фигурными скобками. Приведу пример объявления функции:

<script type="text/javascript">
<!-- прячем скрипт
function getjSquare(num)
square jium = num * num: return (squarejium)
II закончили прятаться -->
</script>

Здесь, кажется, все должно быть уже понятно. Мы создали функцию под названием get_Square, передали в нее значение (в переменную num), затем, в строгом соответствии с алгоритмом, это число было умножено само на себя, присвоено пере менной SquareNum и возвращено.

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

Вызов функций и возвращение значений

Само тело скрипта представляет собой набор вызовов функций. Это, может быть, непривычно слышать, но это так. В рамках самого скрипта осуществляется очень небольшая часть всех вычислений. Все, что вы делаете, — это в основном посылаете какие-нибудь значения в функции, затем получаете результаты. Вызов функции может располагаться либо внутри контейнера <script>, либо в качестве атрибута, определяющего обработчик событий (глава 18), либо в URL Типичный вызов функции выглядит так:

Имя функции(значение):

В скобках можно ввести имя переменной, реальное значение или строку текста, в зависимости от того, что требуется функции в каждом конкретном случае. (Вызовы функций внутри тела документа должны быть внутри тегов <script>, как и определения функций в заголовке.)

ПРИМЕЧАНИЕ

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

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

<script type="text/javascript">
<!-- прячем скрипт
myNum = 10;
mySqr = getSquare (myNum);
document.writeln (" Квадрат числа " + myNum + " равен "
+ mySqr + ".");
// закончили прятаться -->
</script>

В этом вызове функции происходит:

1. Переменной myNum присвоили значение 10.

2. Эта переменная (а значит, число 10) передается в функцию get_Square. (В этом примере предполагается, что используется та самая функция, речь о которой < шла в предыдущем параграфе.)

3. Когда функция принимает число 10, она присваивает его переменной num, после этого производятся вычисления.
4. По окончании вычислений новое значение передается в скрипт.




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 419; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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