- •Язык сценариев JavaScript Диалоговое окно (prompt)
- •Окно с сообщением (alert)
- •Условный оператор
- •Оператор switch и его свойства
- •День недели
- •Оператор цикла арифметического типа
- •Массивы
- •Функция определения выходного/рабочего дня
- •События
- •Обработка значений из формы
- •Передача параметров по ссылке
- •Использование имени формы в качестве параметра функции
- •Иерархия объектов в JavaScript
- •Объект location
- •Определение выделенного элемента
- •Расположение текста и изображения в ячейке таблицы
- •Текстовая область
- •Свойства переключателя
- •Расписание занятий
- •Выбор характеристик издания
- •Использование флажков в анкете переводчика
- •Использование атрибута id
- •Раскрывающиеся списки
- •Использование списка в задаче оформления заказа на витражи
- •Использование списка в анкете переводчика
- •Обработка анкеты переводчика
- •Задание № 1
- •Задание № 2
- •Задание № 3
- •Число k должно вводится через диалоговое окно JavaScript и отображаться на экране перед таблицей.
- •Задание № 4
- •Задание № 5
День недели
Напишем программу, которая по номеру дня определяет его название. Задачу можно решить с использованием условных операторов, в этом случае программа будет ненаглядной. При решении такого рода задач удобно использовать переключатель. Переменной s в зависимости от номера дня недели будет присвоено его название. В листинге 4 приведен требуемый сценарий.
Листинг 4. Определение по номеру дня его названия
<HTML> <HEAD> <TITLE>Oпpeделение по номеру дня его названия</TITLE> </HEAD> <BODY> <script language="JavaScript"> <!-- var s=prompt("Введите номер дня недели","")*1 switch (s) { case 1: alert("понедельник"); break; case 2: alert("вторник"); break; case 3: alert("среда"); break; case 4: alert("четверг"); break; case 5: alert("пятница"); break; case 6: alert("суббота"); break; case 7: alert("воскресенье"); break; default: alert("ошибка в номере дня") } //--> </script> </BODY> </HTML>
Информация, введенная через prompt — это всегда строка. Поэтому, если требуется преобразовать строку в число, нужно сделать умножение на 1.
Оператор цикла арифметического типа
Оператор цикла арифметического типа имеет следующий синтаксис: for (А; В; I){S}
Выражение А служит для инициализации атрибута цикла и вычисляется один раз в начале выполнения цикла. Выражение В (условие продолжения) управляет работой цикла. Если значение выражения ложно, то выполнение цикла завершается, если истинно, то выполняется оператор S, составляющий тело цикла. Выражение I служит для изменения значения атрибута цикла. После выполнения тела цикла S вычисляется значение выражения I, затем опять вычисляется значение выражения В и т.д. Цикл может прекратить свою работу в результате выполнения оператора break в теле цикла. Опишем функцию sumdel, которая находит сумму делителей числа n, не считая самого числа.
function sumdel (n) { var s=1; for (var i=2; i <= n/2; i++) { if (n % i == 0) s += i } return s }
Параметр цикла i описывается с помощью оператора var i = 2. Условие продолжения выполнения цикла i <=n/2. Все делители натуральных чисел находятся в интервале [1; n]. Параметр цикла i увеличивается на 1 при выполнении i++. Тело цикла состоит из условного оператора. Если очередное число является делителем, то оно добавляется к переменной s, служащей для «накапливания» суммы делителей числа n. До цикла переменной s присваивается значение 1, т.к. 1 — делитель любого натурального числа.
Напишем сценарий, изображающий на экране таблицу Пифагора, т.е. таблицу умножения N×N, где значение N запрашивается у пользователя. Кроме того, в этой таблице диагональные клетки закрашиваются желтым цветом (листинг 6).
Листинг 6. Таблица Пифагора N×N
<HTML> <HEAD> <TITLE>Таблица Пифагора NxN</TITLE> </HEAD> <BODY> <script> <!-- var x; var y var color="yellow" var N=prompt("Введите размер таблицы Пифагора (от 2 до 10)","") document.write("<table border=1 cellpadding=5>") for (var y=1; y<=N; y++)
{ document.write("<tr>"); for (var x=1; x<=N; x++)
{ if (x==y) {document.write("<td style='background-color:" + color + " '>")} else {document.write("<td>")} document.write(x*y); document.write("</td>"); }
document.write("</tr>") }
document.write("</table>"); //--> </script> </BODY> </HTML>