Урок 26
Введение в массивы:
функция внутри функции

красным цветом даны примечания переводчика
Концепция__Скрипт__Эффект__Разбор скрипта__Задание

Оглавление (в новом окне)

Концепция

Сегодня мы приступим к нашей последней новой теме — массивы (array). Вы уже узнали о переменных. Каждая переменная имеет одно значение, но иногда вам необходим массив (array), или переменная, которая имеет множество значений.
В этом примере программа просит пользователя угадать телевизионный канал из перечня телеканалов. Запрос повторяется до тех пор, пока пользователь не угадает. Каждый раз при нажатии кнопки выбирается новый телеканал.

Скрипт

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
     tv=new Array()
     tv[0]="ОРТ"
     tv[1]="РТР"
     tv[2]="ТВЦ"
     tv[3]="НТВ"
     tv[4]="ТВ6"
     num=0
function picktv()
    {
       now=new Date()
       num=(now.getSeconds())%5
     }
function whichtv()
{
picktv()
guess=" "
while (tv[num] != guess.toUpperCase())

{guess=prompt("Угадайте мой любимый телеканал:
  ОРТ, РТР, ТВЦ, НТВ или ТВ6?")

  if (guess.toUpperCase() == tv[num])
  {alert("Это мой любимый телеканал!")}
  else
  {alert("Нет, попробуйте еще раз.")}}
  }
</SCRIPT>   
</HEAD>
<BODY>
<FORM>

<INPUT TYPE="button" VALUE="Угадайте"
     onClick="whichtv()">

</FORM>
</BODY>
</HTML>

 

Эффект

.

Разбор скрипта

<SCRIPT LANGUAGE="JavaScript">
     tv=new Array()
     tv[0]="ОРТ"
     tv[1]="РТР"
     tv[2]="ТВЦ"
     tv[3]="НТВ"
     tv[4]="ТВ6"
     num=0

  • tv=new Array() объявляет, что tv представляет собой массив. С пустыми (скобками) массив может быть какой угодно длины. Можно также указать длину массива, например, tv=new Array(5).
  • Помните, что массив array может иметь множество значений. Можно представить себе массив в виде таблицы:

    tv

    tv[0] tv[1] tv[2] tv[3] tv[4]
    ОРТ РТР ТВЦ НТВ ТВ6

  • Обратите внимание, мы заранее указываем переменную num, у которой одно значение, равное 0, и массив tv, который имеет 5 значений.
  • Теперь функция picktv():

function picktv()
    {
       now=new Date()
       num=(now.getSeconds())%5
     }

  • Функция picktv() наугад выбирает число от 0 до 4, которое становится индексом tv. Помните, от нуля до четырех ПЯТЬ чисел. То есть если num равно 2, то любимый телеканал — tv[2], или ТВЦ.
  • Теперь функции whichtv() и picktv():

function whichtv()
{
picktv()
guess=" "
while (tv[num] != guess.toUpperCase())

{guess=prompt("Угадайте мой любимый телеканал:
  ОРТ, РТР, ТВЦ, НТВ или ТВ6?")

  if (guess.toUpperCase() == tv[num])
  {alert("Это мой любимый телеканал!")}
  else
  {alert("Нет, попробуйте еще раз.")}}
  }

Команда guess=prompt должна находиться полностью на одной строке.

  • Вот кое-что новенькое! Видите, первым делом функция вызывает другую функцию, picktv(). Таким образом, когда бы вы ни нажали на кнопку, будет выбираться новый телеканал.
  • Строка while (tv[num] != guess.toUpperCase()). Метод или действие toUpperCase() (в верхний регистр) используется для перевода всего, что бы вы ни напечатали, в верхний регистр.
  • Программа повторяет цикл While, пока пользователь не угадает правильный телеканал. Фрагмент с циклом While уже должен казаться вам вполне знакомым.
  • Обратите внимание на If и Else. В игре возможны только два результата: либо вы правы, либо ошибаетесь.
  • Теперь кнопка, которая все это запускает:

    <FORM>
    <INPUT TYPE="button" VALUE="Угадай"
        onClick="whichtv()">
    </FORM>

    Тут ничего нового.

Еще кое-что о массивах:

В JavaScript есть несколько встроенных массивов. В массивах можно указывать формы. Можете передать форму командой document.myform или document.forms[0], если это первая форма. Массивы всегда начинаются с нуля. Вторая будет document.forms[1]. Третья document.forms[2] и так далее...

Для рисунков тоже есть готовый массив. Можно указать pic1.gif как document.pic1.src или как document.images[0].src. Просто продолжайте следовать схеме, прибавляя номер в [квадратных скобках].

Более-менее поняли, что такое массивы?

Ваше задание

Напишите программу JavaScript, которая содержит кнопку с надписью: «Щелкните, чтобы попасть на случайный сайт». Когда пользователь нажмет на нее, запустится функция, которая наугад выберет число и сайт из массива внутри команды JavaScript top.location.href = urls[num]. top (вершина) — это свойство объекта window, оно относится к главному окну браузера. location.href, другой объект со свойством, содержит адрес URL.

Возможный ответ здесь

Концепция__Скрипт__Эффект__Разбор скрипта__Задание

Вперед, на Урок 27

авторы Джо Бернс и Эндри Грауни. Оригинал и многое другое на английском языке © EarthWeb Inc.
Перевод, оформление и верстка © Татьяна.

Hosted by uCoz