Чтение онлайн

на главную - закладки

Жанры

Основы программирования на JavaScript

Кан Марк

Шрифт:

В конце этой лекции будет рассмотрена область действия переменной. Как можно видеть, в последнем примере переменная apples находится вне функции eatApples. Это делает переменную apples "глобальной переменной", т.е. она будет доступна из любой функции. Переменная eat, с другой стороны, является локальной переменной и существует только внутри функции eatApples. Кроме того, каждый раз при вызове функции eatApples переменная eat не будет существовать, пока не будет снова определена функцией prompt.

Чтобы увидеть эту концепцию в действии, напишем две простые функции счета:

function counting1{

var count = 0;

count++;

alert(count);

}

var count = 0;

function counting2{

count++;

alert(count);

}

Если запустить этот пример в браузере и щелкнуть на каждой кнопке несколько раз, то можно заметить, что counting1 всегда выдает одно и то же значение, 1. counting2, с другой стороны, выдает увеличивающееся число. Почему это происходит? Посмотрим просто сначала на counting1. Можно видеть, что каждый раз при выполнении counting1 прежде всего создается переменная count и ее значение задается равным 0. В следующей строке переменная count увеличивается на 1.

Оператор ++ пока еще не встречался. count++ просто увеличивает count на 1. Другими словами, это в точности то же самое, что написать count += 1 или count = count + 1. Поскольку увеличение на 1 является в программировании очень распространенным действием, то для него существует специальный оператор. Аналогично оператор – - вычитает 1 из переменной: count--.

Каждый раз, когда функция counting1 выполняет alert(count), она сообщает значение новой переменной count , которое только что было определено как 0+1.

Теперь посмотрим на counting2. Можно видеть, что переменная count в этом случае находится вне функции. Даже до вызова этой функции значение count задано как 0. При вызове counting2 прежде всего происходит увеличение переменной count на 1. Так как мы не восстанавливаем значение count в 0, как в случае counting1, то переменная count продолжает сохранять свое значение, и все происходит, как и предполагалось.

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

Лекция 3. Формы и циклы

Основы работы с полями форм и с функциями циклов.

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

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

Имя: Ваш любимый цвет: Синий Желтый

Красный Черный

Зеленый Другой

Фамилия:

Адрес Email:

Отправить форму Очистить форму Зафиксировать форму на месте

Ниже представлен код этой формы. Он приведен только для иллюстрации.

<form name="tutform" onsubmit="return noform;" class="codesnip"

style="background-color:#FFF;z-index:10;">

<table width="100%">

<tr>

<td>Имя:</td>

<td><input name="firstname"></td>

<td>Ваш любимый цвет:</td>

<td rowspan="3" valign="top">

<input type="radio" name="color" value="blue">Синий<br />

<input type="radio" name="color" value="red">Красный<br />

<input type="radio" name="color" value="green">Зеленый

</td>

<td rowspan="3" valign="top">

<input type="radio" name="color" value="yellow">Желтый<br />

<input type="radio" name="color" value="black">Черный<br />

<input type="radio" name="color" value="other">Другой

</td>

</tr>

<tr>

<td>Фамилия:</td>

<td><input name="lastname"></td>

</tr>

<tr>

<td>Адрес Email:</td>

<td><input name="email"></td>

</tr>

<tr>

<td colspan="2"><input type="submit" value="Отправить форму">

<input type="reset" value="Очистить форму"></td>

<td colspan="3" align="right"><button id="lockbutton"

onclick="swapLock;return false;">Зафиксировать форму на месте</button></td>

</tr>

</table>

</form>

Прежде всего необходимо узнать, как создать объект JavaScript, который ссылается на форму. Любую форму на странице можно указать с помощью конструкции document.forms. Если имеется форма с именем tutform, то к ней можно обратиться следующим образом: document.forms.tutform.

Поделиться:
Популярные книги

Весь цикл «Десантник на престоле». Шесть книг

Ланцов Михаил Алексеевич
Десантник на престоле
Фантастика:
альтернативная история
8.38
рейтинг книги
Весь цикл «Десантник на престоле». Шесть книг

Альбион сгорит!

Зот Бакалавр
10. Герой Империи
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Альбион сгорит!

Казачий князь

Трофимов Ерофей
5. Шатун
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Казачий князь

Ермак. Противостояние. Книга одиннадцатая

Валериев Игорь
11. Ермак
Фантастика:
попаданцы
альтернативная история
4.50
рейтинг книги
Ермак. Противостояние. Книга одиннадцатая

Газлайтер. Том 28

Володин Григорий Григорьевич
28. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 28

Кодекс Охотника. Книга XII

Винокуров Юрий
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XII

Седина в бороду, Босс… вразнос!

Трофимова Любовь
Юмор:
юмористическая проза
5.00
рейтинг книги
Седина в бороду, Босс… вразнос!

Черный маг императора

Герда Александр
1. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Законы рода

Андрей Мельник
1. Граф Берестьев
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Законы рода

Лекарь Империи 7

Карелин Сергей Витальевич
7. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
попаданцы
5.00
рейтинг книги
Лекарь Империи 7

Гранит науки. Том 2

Зот Бакалавр
2. Героями не становятся, ими умирают
Фантастика:
фэнтези
5.00
рейтинг книги
Гранит науки. Том 2

Я еще барон. Книга III

Дрейк Сириус
3. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще барон. Книга III

Офицер Красной Армии

Поселягин Владимир Геннадьевич
2. Командир Красной Армии
Фантастика:
попаданцы
8.51
рейтинг книги
Офицер Красной Армии