Опубликован: 19.10.2006 | Уровень: для всех | Доступ: платный
Лекция 10:

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

< Лекция 9 || Лекция 10: 12 || Лекция 11 >
Аннотация: Функции в JavaScript. Их создание и использование.

Концепция

При создании переменной результату команды или события JavaScript присваивается имя. При создании функции делают почти то же самое, только имя присваивается целой серии команд. Множество команд JavaScript объединяются в одну.

Сценарий

Сценарий состоит фактически из двух частей: собственно функции и команды onLoad, которая запускает функцию в работу.

Вот обе части:

<SCRIPT LANGUAGE="javascript">

<!-- Скрыть от браузеров, не поддерживающих JavaScript

function dateinbar()
{
var d = new Date();
var y = d.getFullYear(); 
var da = d.getDate(); 
var m = d.getMonth() + 1; 
var t = da + '/' + m + '/' + y; 

defaultStatus = "Вы прибыли на страницу " + t + ".";
}
// не скрывать -->

</SCRIPT>

...и команда onLoad в <BODY>:

<BODY BGCOLOR="хххххх" onLoad="dateinbar()">

Результат работы сценария

Результат работы сценария будет выводиться внизу в строке состояния.

Почти таким же сценарием мы пользовались для получения даты на прошлыx уроках, поэтому он должен быть понятен. Здесь нас интересует реализация сценария.

Разбор сценария

Здесь мы видим новые элементы <!-- и -->. Возможно, они покажутся знакомыми. Эти знаки используются для комментариев в теле HTML:

<!-- Это текст комментария, не видимый на странице -->

Они присутствуют здесь, так как, хотите верьте, хотите нет, но все еще существуют браузеры, не поддерживающие JavaScript. Если браузер не поддерживает JavaScript, он воспринимает его как текст, который нужно вывести на странице. Выглядит это плохо. Но если воспользоваться этими командами комментария, то браузер успешно проигнорирует незнакомый текст и покажет страницу.

Однако соблюдайте несколько правил.

  • Команды комментария должны находиться между <SCRIPT> и </SCRIPT>. Если поставить их снаружи, то браузер посчитает комментарием весь сценарий JavaScript и ничего не будет выполнено.
  • Текст после команды <!-- должен находиться на одной строке.
  • Перед заключительной командой --> должна стоять двойная косая черта //, иначе JavaScript примет ее за часть сценария, что приведет к ошибке. Можно также добавить некоторый текст, так как он будет считаться комментарием.
  • Совсем не обязательно писать текст к этим командам. Текст присутствует для того, чтобы проще было понять их назначение.

Пользуйтесь приведенной выше схемой, и проблем не будет.

Вернемся к разбору

Здесь происходит две вещи. Сначала в первой части сценария создается функция. Потом команда, находящаяся внутри оператора HTML <BODY>, запускает работу функции. Давайте сначала разберем функцию.

function dateinbar()
{
var d = new Date();
var y = d.getFullYear();
var da = d.getDate();
var m = d.getMonth() + 1; 
var t = da + '/' + m + '/' + y; 
defaultStatus = "Вы прибыли на страницу " + t + ".";
}

Схема довольно понятная. Вы пишете function и задаете любое имя, точно так же, как мы делали с переменными.

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

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

Очень важно!

При создании функции команды, которые составляют функцию, должны быть заключены в фигурные скобки {}. Видите, они стоят сразу после имени функции и в самом конце?

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

  • создается переменная для года;
  • еще одна для числа;
  • еще одна для месяца;
  • затем четвертая для даты целиком.

Последняя команда новая:

defaultStatus = "Вы прибыли на страницу " + t + ".";

defaultStatus (строка состояния по умолчанию) — свойство объекта window. Его назначение — поместить текст в строку состояния внизу окна браузера.

Но почему не написать просто window.status?

Хороший вопрос. Этого нельзя сделать, потому что такой формат используется для события, например, с командой onClick. Раз строка состояния не находится внутри команды HTML, то используем вместо этого defaultStatus. Есть только одна строка состояния — она же и по умолчанию.

< Лекция 9 || Лекция 10: 12 || Лекция 11 >
Елена Сапегова
Елена Сапегова

После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть?

Эдуард Семынин
Эдуард Семынин

Здравствуйте.

Перестали быть видны лекции и тесты практикума по программированию на JavaScript. Уже второй день из моего аккаунта виден лишь план занятий. В чем может быть проблема?