![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||
|
Массивы JavaScript и Escape-последовательности
В предыдущей главе вы научились пользоваться переменными. В этой главе вы узнаете о новой разновидности переменных, которые способны хранить в себе несколько значений, - о массивах. Здесь рассказывается:
Как пользоваться массивамиМассив (array) - мощное средство программирования для любого языка, в том числе в JavaScript. Массив позволяет сохранять несколько независимых значений в одной переменной. Обычно эти значения как-то связаны (например, названия дней недели). Преимущество массивов заключается в том, что правильное их использование значительно упрощает код и помогает избежать создания множества переменных с похожими именами. Итак, посмотрим, как следует создавать массивы и пользоваться ими. Пример. В первую очередь вам нужно создать массив: <html>
Предупреждение Обратите внимание на круглые скобки(()) после new Array. Ошибка, довольно распространенная, заключается в том, что вместо них часто ставят квадратные скобки. Эта простая строка сценария приводит к нескольким различным последствиям:
Таким образом, созданы семь пустых ячеек, или элементов, которым нужно присвоить некоторые значения (см. рис. 5.1). ![]() Рис. 5.1. Пустой массив, состоящий из семи элементов
Ввести значения достаточно просто, только не забывайте отслеживать, какое значение присваивается каждому элементу. days_of_week[x] = значение; В данном случае х означает номер элемента. Прежде всего обратите внимание, как JavaScript нумерует элементы. Он рассматривает первый элемент массива не как первый (с номером 1), а как нулевой (с номером 0). То есть в данном примере дням недели будут соответствовать порядковые номера от 0 до 6, а не от 1 до 7 (см. рис. 5.2). ![]() Рис. 5.2. Семь элементов массива с номерами от 0 до 6
Пример. Итак, чтобы присвоить соответствующее значение первому элементу массива (в данном случае это понедельник), выполняются следующие действия: <html>
Пример. Следуя этому образцу, вы можете заполнить массив соответствующими значениями (см. рис. 5.3): <html>
![]() Рис. 5.З. Вид массива после присвоения элементам значений
Теперь вы можете извлекать из массива значения элементов. Как ранее элементам присваивались значения посредством имени переменной (в данном случае days_of _week) и указанного в квадратных скобках номера элемента (например, days_of_week [2 ] ), так теперь этот формат используется для извлечения значений из массива. Пример. Таким образом, чтобы вывести на экран значение третьего элемента в окне предупредительных сообщений, выполняются следующие действия: <html>
На рис. 5.4 изображен результат выполнения данного сценария. ![]() Рис. 5.4. Окно предупредительных сообщений
со значением элемента под номером 2
Примечание Не забывайте, что счет элементов массива начинается с нуля. Пример. Здесь представлен еще один способ, которым достигается тот же результат: <html>
В данном случае создается переменная х и ей присваивается значение 2. Затем имя переменной х указывается в квадратных скобках, в результате чего из массива извлекается элемент с номером 2. Упражнение Создайте массив месяцев года и воспользуйтесь предложенными ме -тодами, чтобы вывести на экран элементы массива, соответствующие февралю и августу. (Про комментарии можно уже не напоминать.) Быстрое создание массиваПример. Существует более быстрый способ создания того же массива, что и в предыдущем примере. На этот раз все элементы перечисляются в одной строке. <html>
Преимущество такого способа заключается в том, что не нужно заранее задумываться о размерах массива, поскольку соответствующее количество элементов создается автоматически. Этот массив функционально ничем не отличается от массива в предыдущем примере, и доступ к его элементам осуществляется тем же самым способом. Размер массиваРанее вы могли прочитать, что длина массива задается в скрытом виде свойством length (длина). Итак, length - свойство массива, оно может быть скрытым, но это не значит, что оно для вас недоступно. Чтобы выяснить, сколько элементов содержится в массиве days_of_week, можно воспользоваться следующим выражением: days_of_week.length Пример. Здесь это значение выводится на экран в окне предупредительных сообщений: <html>
Результат выполнения примера приводится на рис. 5.5. ![]() Рис. 5.5. Окно предупредительных сообщений
с количеством элементов массива days_of_week
Упражнение Воспользуйтесь свойством 1 ength, чтобы сосчитать элементы созданного ранее массива, содержащего месяцы года. Вывод на экран всех элементов массиваПример. Рассмотрим быстрый и простой способ перечислить значения всех элементов массива. Осуществляется это простым указанием его имени. Следовательно, чтобы извлечь все элементы массива days_of_week и вывести их на экран в окне предупредительных сообщений, надо воспользоваться следующим сценарием (см. рис. 5.6): <html>
![]() Рис. 5.6. Окно предупредительных сообщений
со всеми элементами массива days_of_week
Упражнение Поэкспериментируйте с массивами, содержащими простые значения. Попробуйте добавлять в массив значения элементов. Также потренируйтесь извлекать из массива значения всех или каких-нибудь конкретных элементов. Пользуйтесь свойством length, чтобы узнать количество элементов в каждом массиве. Интерактивное творчествоРассмотрим пример использования массива для создания интерактивного стихотворения. Наверное, вы знакомы с игрой, в которой участникам предлагается назвать некоторое количество слов - прилагательных, существительных и т.д. Затем их ответы подставляются в какое-нибудь известное произведение, в результате чего получается уникальный и довольно забавный текст. Далее показано, как создать такую игру. Пример. Возьмите любую сказку, стихотворение или текст песни. Выберите слова, которые хотите заменить, и подставьте вместо них имена переменных: У Лукоморья entryl entry2, Сохраните этот текст, вскоре он вам понадобится. А теперь составьте список подходящих описаний для замененных слов:
Это сообщения в окне запросов, подсказывающие пользователю, какие именно ответы он должен ввести. Через несколько секунд вы создадите из этих описаний массив. А пока составьте список слов по умолчанию, которые должны быть вставлены в стихотворение. Если хотите, впишите что-нибудь забавное. Эти слова будут использованы в окончательном варианте стихотворения, если пользователь просто щелкнет по кнопке ОК, ничего не напечатав: "дуб" Теперь можно приступить к написанию сценария. Возьмите файл шаблона и создайте новый массив, содержащий сообщения для вывода в окнах запросов, непосредственно перечисляя значения элементов массива: <script language="JavaScript">
Затем создайте массив слов, используемых по умолчанию: <script language="JavaScript">
А теперь объявите переменные для ответов на запросы: <script language="JavaScript">
Далее нужно вызвать окна запросов с соответствующими сообщениями и текстом по умолчанию, пользуясь элементами массива: <script language="JavaScript">
А теперь, когда все подготовлено, можно вернуться к сказке, стихотворению или тексту песни. Вам нужно вставить каждую строчку в окно предупредительных сообщений. Текст внутри круглых скобок должен заключаться в двойные кавычки ("). Помните, что вы можете использовать одинарные кавычки (') внутри двойных, и наоборот. Если бы внутри текста использовались двойные кавычки, то для их отображения следовало бы воспользоваться знаком соответствующей Escape-последовательности (\"). Тогда двойные кавычки внутри строки будут отображаться без ошибок. Строки текста и введенные пользователем значения переменных объединяются с помощью операции +. Предупреждение Пользователи Microsoft Visual Basic или VBScript иногда неправильно употребляют символ & для объединения. Такая ошибка очень распространена. <script language="JavaScript">
Сохраните файл и откройте его в браузере, чтобы создать собственное стихотворение. Введите свою информацию в окнах запросов и окнах предупредительных сообщений, посмотрите на полученный результат. ОптимизацияОдин из способов оптимизации сценария касается окон запросов. Вместо того чтобы сначала объявлять переменные, а затем вызывать окна запросов, эти операции можно объединить в одной строке: var entryl = prompt(promptmsg[0], defaulttxt[0])
Упражнение Как еще можно оптимизировать ваш сценарий ? Воспользуйтесь для этого не переменными, а массивом для сохранения информации, введенной в окнах запросов (от entryl до entry9). Вызовите окно предупредительных сообщений, чтобы проинструктировать пользователя перед началом игры, и создайте комментарии к коду. Escape-последовательностиВ примере интерактивного стихотворения уже упоминался один из примеров Escape-последовательности - комбинация \", которая означает двойные кавычки внутри строки. Escape-последовательности используются в строках для следующих целей:
Escape-последовательности перечислены в табл. 5.1. Таблица 5.1. Escape-последовательности
Эти символы могут помещаться в любом месте строки. Ставить пробелы перед ними или после них не требуется. Пример. Ниже приводится несколько примеров использования Escape-последовательностей. Возврат каретки: <script language="JavaScript">
На рис. 5.7 показан результат использования этого символа. ![]() Рис. 5.7. Окно предупредительных сообщений,
поясняющее использование возврата каретки
Одинарные и двойные кавычки: <script language="JavaScript">
![]() Рис. 5.8. Окно предупредительных сообщений,
поясняющее использование одинарных и двойных кавычек
Знаки табуляции: <script language="JavaScript">
На рис. 5.9 показан результат использования символа табуляции в строке. ![]() Рис. 5.9. Окно предупредительных сообщений,
поясняющее использование символа табуляции
Упражнение Измените пример создания интерактивного стихотворения так, чтобы весь текст выводился в одном окне предупредительных сообщений. (Вам понадобится символ возврата каретки \r для разделения строк.) |
||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |