|
Использование операторов в языке JavaScript
Вы изучили переменные, массивы и операции, теперь можно перейти к операторам JavaScript. Операторы (statements) представляют собой мощный инструмент языка JavaScript. После того как вы освоите операторы, ваши сценарии перейдут на качественно новый уровень, и вы с легкостью сможете решать более сложные задачи. В этой главе излагается материал по следующим темам:
Что такое операторыВсе сценарии JavaScript, независимо от их размеров и сложности, представляют собой последовательность операторов. Пример. Вам уже встречались такие примеры. Выводимое на экран окно предупредительных сообщений является результатом выполнения оператора: <script language="JavaScript">
Пример. Ниже приводится еще один пример оператора: <script language="JavaScript">
Пример. И еще несколько операторов: <script language="JavaScript">
Все написанные вами сценарии выполнялись от первой до последней строчки (если они не были организованы для выполнения в другом порядке). Обратите внимание на одну общую особенность. Это точка с запятой (;) в конце каждой строки. В языке JavaScript точки с запятой означают конец оператора (подобно точке, которая ставится в конце предложения). Расставлять их не обязательно, если вы это не сделаете, то JavaScript расставит их за вас. Однако их рекомендуется использовать по следующим причинам:
Давайте рассмотрим несколько различных операторов, используемых в языке JavaScript. Оператор variableПример. Оператор variable уже знаком вам. По своему смыслу он подобен завершенному предложению в английском языке. То есть в случае var this_year = 2001; оператор variable означает, что создана переменная this_year и ей присвоено значение 2001. Это законченное предложение. Оператор ifОператор if управляет последовательностью выполнения команд и может использоваться для разных целей. В сценарии JavaScript он позволяет выбрать и запустить на выполнение одну из двух альтернативных групп операторов. Выбор осуществляется с помощью булевых выражений (true или false). Рассмотрим, например, как функционирует с помощью оператора if окно подтверждения. Пример. Сначала надо создать обычное окно подтверждения с помощью метода confirm(): <script language="JavaScript">
Пользователю дается возможность выбрать одну из двух кнопок (см. рис. 7.1). Давайте напишем код для тех пользователей, которые предпочтут ОК (не думаете же вы, что кто-то выберет Cancel). Рис. 7.1. Выведенное на экран окно подтверждения
Когда пользователь щелкает по кнопке ОК, создается булево выражение true, с помощью которого вы узнаете о сделанном выборе. Для этого нужно объявить переменную и соотнести ее с методом confirm (): <script language="JavaScript">
Переменная response запоминает ответ пользователя на вопрос. Это происходит так же, как переменная сохраняет введенную пользователем строку при помощи метода prompt (). Иными словами, если пользователь щелкает по кнопке ОК, то переменной response присваивается значение true (см. рис. 7.2). Чтобы убедиться в этом, воспользуемся оператором if. Пример. Это выполняется в JavaScript следующим образом: <script language="JavaScript">
Рис. 7.2. Окно подтверждения, выведенное на экран после щелчка по кнопке ОК
Давайте рассмотрим это пример построчно: if ( response == true ) Это начало оператора if (заметьте, что в конце строки нет точки с запятой), здесь определяется, присвоено ли переменой response значение true. Если это условие выполняется, осуществляется переход к следующей строке. В следующей строке находится открывающая фигурная скобка ({), значение которой бывает трудно понять новичкам. Однако смысл фигурных скобок очевиден. Фигурные скобки ({ и }) используются для объединения заключенных в них операторов. Рекомендация Рассматривайте содержимое фигурных скобок как отдельные пункты списка. Другими словами, если условие верно, выполняется {
Примечание Фигурные скобки можно располагать по-разному. В данной книге они ставятся в отдельной строке, чтобы сразу привлекать внимание. Следующая строка используется для вызова окна предупредительных сообщений, содержащего текст «Отличный выбор». Затем идет закрывающая фигурная скобка (}). Сохраните файл и откройте его в браузере, чтобы увидеть результат ваших действий. Сначала появится окно подтверждения (см. рис. 7.3). Рис. 7.3. Выведенное на экран окно подтверждения
После щелчка по кнопке ОК появится окно предупредительных сообщений (см. рис. 7.4). Рис. 7.4. Окно предупредительных сообщений
Таким образом, оператор if используется по следующей схеме: if (условие)
Условие требуется всегда и его результатом является булево выражение. Далее оператор1 не обязателен. Вы можете ничего здесь не указывать, но тогда ваш сценарий окажется бессмысленным, поскольку выполнение оператора if ни к чему не приведет. Если же в фигурных скобках содержатся какие-либо операторы, они будут выполнены в том случае, если условие истинно (true). Примечание Если результатом условия является null или undefined, то это равноценно значению false (ложь). Пример. Теперь ваш сценарий выполняет определенные действия после щелчка по кнопке ОК. При щелчке по кнопке Cancel в дело вступает вторая часть оператора if - else. Она позволяет отреагировать на невыполнение условия (в данном случае на нажатие кнопки Cancel, что равноценно присвоению переменной response значения false): <script language="JavaScript">
Часть else вставляется после закрывающей фигурной скобки. Входящие в нее операторы также помещаются в фигурные скобки. Внесите эти изменения и сохраните файл, затем попробуйте щелкнуть по кнопке Cancel еще раз (см. рис. 7.5). Рис. 7.5. Окно предупредительных сообщений, возникающее
после щелчка по кнопке Cancel
Таким образом, оператор if ... else используется по следующей схеме: if (условие)
Упражнение Измените предыдущий сценарий так, чтобы использование оператора if отрабатывалось на условии response = = false. Операторы организации циклаЦикл (iteration) — это повторение последовательности операторов некоторое количество раз или пока условие не будет выполнено. Существует четыре оператора организации цикла:
Цели, которым служат эти операторы, мало отличаются друг от друга. Но каждый из операторов по-своему полезен. Оператор do... whileПример. Оператор do ... while запускает на выполнение оператор или группу операторов и повторяет эту процедуру до тех пор, пока условие не перестанет выполняться. Это определение поясняется следующим примером: <script language="JavaScript">
В данном сценарии имеется переменная х, первоначальное значение которой равно единице. Затем в части do сценария указывается, что значение х должно быть увеличено на 1 и результат должен быть выведен на экран в окне предупредительных сообщений. В части while сценария указывается, что данная операция должна повторяться до тех пор, пока значение х меньше десяти. Пример. Оператор do ... while работает не только с числами. В следующем примере окно запроса будет появляться на экране до тех пор, пока в него не введут строку текста. После этого условие в части while примет значение false и начнет выполняться следующая часть сценария - вывод окна предупредительных сообщений: <script language="JavaScript">
Пример. Чтобы предыдущий пример заработал, в окне ввода не должно быть текста по умолчанию. Но небольшое дополнение позволяет это обойти: <script language="JavaScript">
В данном примере предусмотрено три варианта развития событий:
Это достигается с помощью операции логического ИЛИ ( | | ). Часть do выполняется до тех пор, пока значение переменной sometext соответствует строке "Впечатайте текст" или пустой строке либо значению nul1 (в случае нажатия кнопки Cancel). Примечание Этим приемом не следует злоупотреблять. Пользуйтесь им только в случаях крайней необходимости, когда очень важно, чтобы пользователь ввел какое-либо значение (например, адрес электронной почты, по которому требуется отправить информацию). Подобный прием может раздражать пользователей, особенно когда невозможно убрать окно сообщений с экрана. Пример. Нужно быть очень внимательным при использовании операторов организации цикла, так как здесь легко ошибиться и код будет выполняться бесконечно. Вот пример такой ошибки (но не пытайтесь запустить его на выполнение): <script language="JavaScript">
Теперь вам придется вечно щелкать по кнопке ОК в окне предупредительных сообщений, поскольку значение х, постоянно увеличивающееся на единицу, никогда не станет меньше или равным нулю. Примечание Эта ошибка может привести к «зависанию» браузера. Упражнение Откорректируйте предыдущий пример, чтобы он выполнялся правильно. Оператор whileПример. Оператор while подобен оператору do ... while и действует похожим образом: <script language="JavaScript">
Примечание Новички легче усваивают оператор do... while. Это связано с функционированием этих операторов. Оператор do ... while исполняется в сценарии хотя бы один раз, тогда как while может вовсе не запускаться на выполнение (в зависимости от обстоятельств). Это часто сбивает с толку начинающих. Упражнение Создайте окно запроса (как в примере использования оператора do ... while) с помощью оператора while. Оператор forПример. Оператор for подобен ранее рассмотренным операторам, но он несколько сложнее. Разница заключается в способе подсчета, в результате которого весь процесс может повторяться вечно: <script language="JavaScript">
Предупреждение При неправильном задании условий процесс действительно может продолжаться до бесконечности. Например: for (х = 1 x > 0; х++) Рассмотрим самую важную строчку: for (x = 1; x < 10; ++x) Смысл этой строки заключается в том, что значение х возрастает от единицы с шагом 1 до тех пор, пока оно меньше десяти. Если это условие удовлетворяется, будет выполняться следующий оператор. Можно кратко изложить назначение оператора for: for (начальное значение; условие; шаг возрастания) Начальное значение - это значение переменной в исходный момент времени; условие - это булево выражение, а шаг - это шаг возрастания (или убывания) начального значения переменной до тех пор, пока условие не примет значение false. Пример. В данном примере значение переменной на каждом этапе уменьшается на 2: <script language="JavaScript">
Пример. Здесь оператор for используется для инициализации десяти элементов массива, причем каждому элементу массива присваивается значение, равное его номеру. Затем содержимое массива выводится на экран в окне предупредительных сообщений (см. рис. 7.6). <script language="JavaScript">
Рис. 7.6. Содержимое массива myarray
Упражнение Внесите в предыдущий пример такие изменения, чтобы создавался массив, состоящий из ста элементов. Оператор for... inПоследний рассматриваемый здесь оператор организации цикла - оператор for ... in. Он используется для выполнения одного или более операторов с элементами массива. Это позволяет использовать один оператор для всех элементов массива, вместо того чтобы записывать отдельные операторы для каждого элемента. Пример. В данном примере оператор for ... in используется для увеличения на единицу каждого из пяти элементов массива myarray. <script language="JavaScript">
Благодаря строке for (x in myarray) переменная х последовательно принимает значения, соответствующие элементам массива, а затем значение каждого элемента увеличивается на единицу (см. рис. 7.7). Рис. 7.7. Окончательные значения элементов массива myarray
Пример. Еще одним примером использования оператора for ... in является заполнение массива строковыми величинами, например именами графических файлов (позже вы убедитесь, насколько это может быть полезно). Предположим, вам нужно создать массив, содержащий десять имен графических файлов (img0.gif, imgl .gif, img2.gif, ..., img9.gif). С помощью оператора for ... in это делается очень просто: <script language="JavaScript">
В окне предупредительных сообщений (см. рис. 7.8) выводятся на экран значения десяти элементов массива. Рис. 7.8. Окончательные значения десяти элементов массива myarray
Примечание Не расстраивайтесь, если общий принцип действия оператора for... in кажется вам не совсем понятным. Позже у вас будет множество возможностей научиться им пользоваться. Упражнение Измените предыдущий пример так, чтобы массив содержал пять гиперссылок. Оператор continueОператор continue (продолжить) используется в сочетании с операторами while, do... while, for и for... in. Этот оператор заставляет компьютер перейти к выполнению следующего цикла. Пример. Иначе говоря, если оператор continue поместить непосредственно в тело оператора, все следующие за ним операторы будут пропущены: <script language="JavaScript">
Пример. Естественно, такой эффект нежелателен, и поэтому оператор continue обычно используется внутри оператора if. В данном примере окно предупредительных сообщений не будет выводиться на экран при х = 5. <script language="JavaScript">
Пример. Предыдущий пример можно изменить таким образом, чтобы на экран выводились только нечетные числа. Это делается с помощью условия if (x % 2 = = 0), которое является истинным, если х четно (результат приводится на рис. 7.9): <script language="JavaScript">
Рис. 7.9. На экран выводятся только нечетные числа
Пример. Изменяя условия, можно вывести на экран и одни четные числа (результат приводится на рис. 7.10): <script languago="JavaScript">
Рис. 7.10. После изменения условия на экран выводятся только четные числа
Упражнение Поэкспериментируйте с оператором continue на нескольких простых примерах с различными условиями, чтобы лучше понять принцип его действия. Оператор breakВ паре с оператором continue работает оператор break (прервать). В то время как оператор continue приводит к выполнению следующего за ним цикла, оператор break этот цикл прерывает. Оператор break используется в операторах while, for, for ... in и do ... while, а также в сочетании с оператором switch, который вы еще не изучали. Пример. Здесь на экран выводится окно предупредительных сообщений (со значением 1), после чего в дело вступает оператор break, и цикл прерывается: <script language="JavaScript">
Пример. Так же, как и оператор continue, оператор break применяется в сочетании с оператором if. В данном примере вы можете ввести число, при котором следует прервать выполнение оператора while: <script language="JavaScript">
Цикл оператора while будет выполняться до тех пор, пока значение х не станет равным значению переменной breakat, и тогда цикл прервется. Если вы введете в окне запроса значение 5, на экран будут выведены окна предупредительных сообщений со значениями от 1 до 4. Упражнение Поэкспериментируйте с оператором break на нескольких простых примерах и с различными условиями, чтобы лучше понять принцип его действия. Оператор switchОператор switch (перейти к...) позволяет выполнить один или несколько операторов, если значение указанного выражения совпадает с меткой. Сценарий имеет следующий вид: switch (выражение)
Пример. В данном примере числом, введенным в окне запроса, определяется, какие именно операторы должны выполняться (информация на экране до и после ввода числа показана на рис. 7.11 и 7.12): <script language="JavaScript">
Рис. 7.11. Значение, введенное в окне запроса
Рис. 7.12. Окно предупредительных сообщений,
показывающее, какой именно оператор был выполнен
Каждый набор операторов должен заканчиваться оператором break, в противном случае будут выполняться все последующие за ним операторы. Пример. Иногда бывает необходимо предусмотреть группу операторов, используемую по умолчанию в тех ситуациях, когда выражению не соответствует ни одна из меток. В предыдущем примере рассматривался случай, когда введенное число не попадает в промежуток от 1 до 4. <script language="JavaScript">
Пример. Оператор switch можно использовать также с окнами подтверждения. В данном примере интерес представляют булевы выражения true и false. Поскольку других вариантов быть не может (у нас только две кнопки - ОК и Cancel), нет необходимости вводить операторы, используемые по умолчанию: <script language="JavaScript">
Когда вы откроете эту страничку в браузере, перед вами появится окно подтверждений, показанное на рис. 7.13. Щелкните по кнопке Cancel, и вы увидите окно предупредительных сообщений (см. рис. 7.14). Рис. 7.13. Начальное окно подтверждений
Рис. 7.14. Окно предупредительных сообщений,
показывающее, какой именно оператор был выполнен
Упражнение Воспользуйтесь оператором switch для написания сценария, в котором будут выполняться различные операторы в зависимости от того, какая буква введена в окне запроса: а, Ь, с, d или е. Не забудьте указать оператор, используемый по умолчанию, для непредвиденных значений. Последнее, чему вам следует научиться - как перейти от сценария, исполняе-мого от первой до последней строки, к сценарию, разбитому на логические разделы. Это осуществляется с помощью функций, которые будут рассмотрены в следующей главе. |
||||||