42244

Программирование на языке JavaScript (данные, функции и управление выполнением программы)

Лабораторная работа

Информатика, кибернетика и программирование

Программирование на языке JvScript данные функции и управление выполнением программы 1. Цель работы Целью работы является овладение навыками работы с данными функциями и предложениями управления при создании интерактивных Webстраниц с использованием языка сценариев JvScript. Синтаксис языка JvScript Текст программы на языке JvScript представляет собой последовательность символов в кодировке SCII или Unicode. Комментарии в языке JvScript можно оформлять одним из следующих двух способов: 1.

Русский

2013-10-28

186.5 KB

18 чел.

 18 -

Лабораторная Шонин В.А. работа 2-08

Программирование на языке JavaScript (данные, функции и управление выполнением программы)

1. Цель работы

Целью работы является овладение навыками работы с данными, функциями и предложениями управления при создании интерактивных Web-страниц с использованием языка сценариев JavaScript.

2. Состав рабочего места

2.1. Оборудование: IBM-совместимый   персональный компьютер (ПК).

2.2. Программное обеспечение: операционная система Windows, Web-браузер Internet Explorer версии 6.0 и выше.

3. Краткие теоретические сведения

3.1. Синтаксис языка JavaScript

Текст программы на языке JavaScript представляет собой последовательность символов в кодировке ASCII или Unicode. Вводимые символы и последовательности символов могут быть следующих типов: пробельные символы, комментарии и элементы программы (tokens).

Пробельные символы и комментарии являются разделителями между элементами программы. Элементы программы могут отделяться друг от друга одним или несколькими разделителями.

Пробельными символами, помимо пробела (код 20) являются: символ горизонтальной табуляции (код 09), символ вертикальной табуляции (код 0B), новая страница (код 0C). Символы перехода на новую строку (код 0A) и символ возврата каретки (код 0D) также считаются пробельными символами и одновременно указанием для редактора или программы просмотра о выводе следующих символов программы на новой строке.

Комментарии в языке JavaScript можно оформлять одним из следующих двух способов:

1. /* текст */

Весь текст, заключенный между этими сочетаниями символов, будет проигнорирован. Такой комментарий может распространяться на несколько строк.

2. // текст

Весь текст, следующий после символов "//" до конца строки, игнорируется.

В комментариях можно использовать любые символы ASCII или Unicode (в том числе и буквы кириллицы). При выполнении программы интерпретатор игнорирует комментарии.

Элементами программы являются: зарезервированные слова, идентификаторы, операторы и константы (литералы).

Зарезервированными словами являются следующие ключевые слова:

break

default

finally

return

var

case

delete

for

super

void

catch

do

function

switch

while

class

else

if

this

with

const

enum

import

throw

continue

export

in

try

debugger

extends

new

typeof

Большинство из этих ключевых слов используются в синтаксических конструкциях (операторах) JavaScript, а некоторые слова зарезервированы для будущих расширений языка. К зарезервированным словам относятся также слова null, true и false, которые используются как литералы.

Идентификаторы могут иметь любую длину и не должны совпадать зарезервированными словами. Идентификаторы формируются из латинских букв (строчных и прописных), цифр, а также символов "_" (подчеркивания) и "$" (знак доллара). Первым символом идентификатора не должна быть цифра. Большие (прописные) и маленькие (строчные) буквы в идентификаторах, считаются разными символами.  

Операторы JavaScript – это символы арифметических,  логических и битовых  операций, операций отношения и присваивания (простых и составных), знаки пунктуации (запятая, точка, точка с запятой, двоеточие, восклицательный и вопросительный знак), а также скобки (круглые, фигурные и квадратные).

Литералы представляют числовые, строковые, булевские значения (истина или ложе), а также специальное, нулевое, значение (null).      

Из пробельных символов и элементов формируются предложения (statements), последовательно обрабатываемых интерпретатором  JavaScript.

Можно располагать и несколько предложений в строке. В этом случае они должны быть отделены друг от друга символом ";". В случае записи предложения на отдельной строке символ ";" в конце предложения в JavaScript задавать не обязательно (в отличие от языков C/C++ и Java).

Строковый литерал обязательно должен располагаться на одной строке. Если необходимо задать его в нескольких строках, то следует разбить его на более мелкие строковые литералы и использовать операцию конкатенации (сцепления)  строк "+", рассматриваемую далее, для соединения полученных мелких строк в одну длинную. В этом случае каждый литерал можно располагать на отдельной строке.

3.2. Переменные и литералы языка JavaScript

Как и любой другой язык программирования, JavaScript использует переменные для хранения данных определенного типа (числа, строки, булевой переменной и т.п.). Реализация JavaScript является примером языка свободного использования типов. В нем не обязательно задавать тип переменной. Ее тип зависит от типа хранимых в ней данных, причем при изменении типа данных меняется и тип переменной.

JavaScript поддерживает четыре простых типа данных:

  •  Целый
  •  Вещественный
  •  Строковый
  •  Булевский, или логический

Для присваивания переменным значений основных типов применяются литералы –  непосредственные значения данных соответствующих типов.

Целые литералы являются последовательностью цифр и представляют обычные целые числа со знаком или без знака.

Помимо десятичных целых чисел, в JavaScript можно задавать восьмеричные и шестнадцатеричные целые числа.

Восьмеричные числа должны содержать только цифры от 0 до 7. Признаком того, что число представлено в восьмеричной форме, является обязательный ноль перед числом, например, 042.  

Шестнадцатеричные числа могут содержать цифры 0-9 и буквы a-f (или A-F). Признаком того, что число шестнадцатеричное, является префикс "0X" или "0x" перед числом, например, 0xAC16.

Для задания вещественных литералов используется синтаксис чисел с десятичной точкой, отделяющей дробную часть числа от целой, или запись вещественных чисел в научной нотации с указанием после символа "е" или "Е" порядка числа, например, 3.5E-7.

Строковый литерал – последовательность алфавитно-цифровых символов, заключенная в одинарные "'" или двойные кавычки """, например: "Анна", 'АННА'.

Если в строке нужно использовать символы кавычек, то строковый литерал необходимо заключать в кавычки противоположного вида, например:

"It's a string"      //Значение строки равно It's a string

Булевские литералы имеют два значения: true и false, и используются для обработки ситуаций да/нет в операциях сравнения.

Литерал null определяет некоторое значение,  не равное ни одному из допустимых значений числовых, строковых или булевских литералов.

Определить переменную можно двумя способами:

  •  с помощью предложения var
  •  с помощью операции присваивания "="

Выражение var используется как для задания, так и для инициализации переменной и имеет синтаксис:

var имя-переменной [= начальное-значение];

Необязательная операция присваивания задает данные, которые содержит  переменная. Их тип определяет и тип переменной.

Если при определении переменной ей не присвоено никакого значения, то ее тип не определен. Ее тип будет определен только после того, как ей будет присвоено некоторое значение с помощью операции присваивания "=".

Эту операцию можно использовать в любом месте программы, меняя тем самым тип переменной.  

Это обстоятельство отличает язык JavaScript от строго типизированных языков программирования (например, Java или C++), в которых тип переменной (целый, строковый и т.п.) должен быть определен до ее использования и не может изменять в программе.

3.3. Функции в языке JavaScript

Как и в других языках для выполнения повторяющихся действий можно использовать функции или процедуры. Функция или процедура –  это именованная последовательность операторов, которая выполняет определенную задачу и может возвращать некоторое значение. Функция определяется предложением описания функции, имеющим следующий синтаксис:

function имя-функции(параметр-1, параметр-2, ..., параметр-n) 

{

[предложения JavaScript]

[return значение]

}

Параметры, передаваемые функции, разделяются запятыми. Имя-функции представляет собой идентификатор JavaScript. Последовательность предложений, заключенных в фигурные скобки, называется блоком. Блоки используются не только в функциях, но и в других предложениях JavaScript (условиях и циклах). Блок в функции часто называют телом функции.  

Вызов функции в предложении JavaScript имеет следующий вид:

имя-функции (аргумент-1, аргумент-2,..., аргумент-n)

При вызове функций значения, заданные в аргументах, подставляются вместо формальных параметров, а затем выполняются предложения в теле функции.   Необязательное предложение return в теле функции определяет возвращаемое функцией значение (если предложения return в функции нет, предложения в теле функции выполняются, но функция не возвращает никакого значения). Скобки после имени-функции в определении и вызове функции указываются обязательно, даже если функции не передаются никакие аргументы.  

Следует четко понимать различие между определением функции и ее вызовом. Объявление функции только задает ее имя и определяет, что она будет  делать при ее вызове. Непосредственное выполнение функции осуществляется, когда в сценарии вызывают ее и передают действительные параметры.

Определение необходимых функций следует осуществлять в элементе <head>, так как все определенные в нем операторы сценария интерпретируются до отображения страницы, и, таким образом, будут известны в процессе отображения всей страницы.

Наряду с функциями, определяемыми пользователем, в JavaScript, как и в других языках программирования имеются встроенные функции, которые можно использовать без их определения.

Встроенные функции JavaScript будут подробно рассматриваться дальше. Однако три встроенные функции –  alert, prompt и confirm, будут введены уже сейчас, поскольку они являются одним из средств, обеспечивающих обмен данными между документом HTML и пользователем, и без них невозможно ни ввести данные, ни получить результат работы сценария JavaScript. Хотя в JavaScript есть и другие средства обмена данными (с помощью форм), именно эти три функции будут пока использоваться в примерах и заданиях по языку JavaScript.

Характеристики указанных функций приведены в табл. 8.1.

Таблица 8.1. Характеристики функций alert, prompt и confirm

Вызов функции

Выполняемые действия

Возвращаемое значение

alert(сообщение)

Отображение диалогового окна Alert с заданным сообщением и кнопкой ОК.

нет

confirm(сообщение)

Отображение диалогового окна Confirm с заданным сообщением, а также кнопками ОК и Cancel.

В случае, если нажата кнопка OK, функция возвращает true, если Cancel – возвращает false.

prompt(сообщение, начальная-строка)

Отображение диалогового окна Prompt с заданным сообщением и полем ввода. Если значение начальной-строки не равно "", в поле ввода выводится значение, заданное в начальной-строке.

Функция возвращает значение введенной в поле ввода строки.

 

3.4. Размещение операторов языка JavaScript на Web-странице

Встроить сценарий JavaScript в Web-страницу можно несколькими способами:

  •  Задать операторы языка внутри контейнера <script>…</script> языка HTML;
  •  Указать файл с кодом JavaScript в атрибуте src элемента <script>;
  •  Определить предложения  языка в атрибуте элемента HTML.

Элементы вставки сценариев <script> и <noscript> определены в XHTML в модуле Scripting.

Для внедрения в Web-страницу сценария JavaScript в спецификацию языка HTML был введен контейнер <script>...</script>, внутри которого могут располагаться операторы языка JavaScript. Для элемента <script>, помимо общих атрибутов class, id, dir, lang, style и title, можно задавать атрибуты, приведенные в табл. 8.2.

Таблица 8.2. Атрибуты элемента <script>

Имя атрибута

Что определяет

Значение по умолчанию

charset

Набор символов, используемый в сценарии.

нет

event

Имя события, обрабатываемого сценарием.

нет

src

Адрес внешнего сценария.

нет

type

MIME-тип сценария.

text/javascript

Язык, используемый для написания сценариев по умолчанию, можно определить также в элементе <meta> в заголовке документа HTML, например:

<meta http-equiv="Content-Script-Type"

content="text/javascript">.

Следует отметить, что хотя в спецификации HTML 4.01 не определено значение языка сценариев по умолчанию, большинство Web-браузеров в случае отсутствия атрибута type предполагает, что сценарий написан на языке JavaScript.

Обычно Web-браузеры, не поддерживающие какие-нибудь элементы HTML, просто их игнорируют, анализируя, однако, содержимое пропускаемых элементов будет выводиться, что может приводить к ошибкам при отображении Web-страницы. Во избежание подобной ситуации следует помещать операторы языка JavaScript в контейнер комментария <!-- ... -->, как показано ниже

<script type="text/javascript">

<!--

операторы JavaScript

//-->

</script>

Символы "//" перед закрывающим элементом комментария "-->" являются оператором комментария JavaScript. Он необходим для правильной работы интерпретатора.

Документ может содержать несколько элементов <script>, расположенных в любом месте документа. Все они последовательно обрабатываются интерпретатором JavaScript по мере отображения частей документа в окне Web-браузера. В связи с этим ссылка на переменную, определенную в сценарии, размещенном в конце документа, может привести к генерации ошибки интерпретатора при обращении к такой переменной из сценария в начале документа. Поэтому рекомендуется размещать сценарии с глобальными функциями и переменными в контейнере <head>…</head> документа. В этом случае все определения обрабатываются интерпретатором в начале загрузки документа и хранятся в памяти с первых моментов отображения документа в окне Web-браузера.

Для тех Web-браузеров, которые не поддерживают JavaScript, в контейнере <noscript> …</noscript> можно задать сообщение, например:

<noscript>

Извините, но используемый вами Web-браузер не поддерживает сценарии JavaScript, либо поддержка сценариев выключена.

</noscript>

Элемент <script> имеет атрибут src, позволяющий связать встраиваемый сценарий с внешним файлом, содержащим программный код на языке JavaScript. В качестве значения параметра задается полный или относительный URL-адрес ресурса. Задание закрывающего элемента </script> обязательно, независимо от того, заданы или нет операторы внутри элемента. Следующий фрагмент кода связывает Web-страницу с файлом-источником, содержащим некоторый набор функций:

<script src="http://home.bhv.com/functions/jsfuncs.js">

[предложения JavaScript]

</script>

Следует иметь в виду, что связываемый внешний файл не должен содержать элементов HTML и должен иметь расширение .js.

Для вставки сценария в атрибут вместо значения атрибута подставляется имя языка сценариев, а затем (после символа ":") предложения сценария. Для языка JavaScript это будет выглядеть следующим образом:

javascript: предложения-JavaScript,

например

<a href="javascript:alert('Гиперссылка не включена')">

Вызов ссылки

</a>.

Обычно такая форма ставки сценариев используется для атрибутов href, src, а также атрибутов обработки событий.

3.5. Выражения и операторы языка JavaScript

Выражение –  это комбинация переменных, литералов и операторов, в результате вычисления которой получается одно единственное значение, которое может быть числовым (целым или вещественным), строковым или булевым.

Переменные в выражениях должны быть инициализированы либо в операторе var, либо с помощью операции присваивания. Если при вычислении выражения встречается неинициализированная переменная, то интерпретатор генерирует ошибку "undefined variable" ("переменная не определена"), указывая ее местоположение на Web-страниц.

Как уже указывалось, в JavaScript определен специальный литерал null для обозначения неопределенного значения. Если переменной присвоено значение null, то она считается инициализированной, и при вычислении выражения с такой переменной ошибка не генерируется.

3.5.1. Оператор присваивания и арифметические операторы

Оператор присваивания рассматривается как выражение присваивания, которое вычисляется равным выражению правой части, и в то же время она присваивает вычисленное значение выражения переменной, заданной в левой части операции.

Кроме выражения присваивания, в JavaScript существует три типа выражений:

  •  арифметическое выражение (вычисляемым значением является число);
  •  логическое выражение (вычисляемое значение равно true или false);
  •  строковое выражение (вычисляемым значением является строка).

Для построения выражений применяются операторы, соответствующие типу выражения.

Арифметические выражения создаются арифметическими операторами, приведенными в табл. 8.3.

Таблица 8.3. Арифметические операторы языка JavaScript

Оператор

Действие

+

Сложение.

-

Вычитание.

*

Умножение.

/

Деление.

%

Определение остатка от деления целых чисел.

++

Увеличение значения переменной на единицу.

--

Уменьшение значения переменной на единицу.

Операции сложения, вычитания, умножения и деления выполняются так же, как и в математике.

Операция вычисления остатка от деления (оператор "%") возвращает остаток от деления первого числа на второе, причем результат будет иметь тот же знак, что и делимое, например, результат операции 5%3 будет равен 2, а результат операции

(-7)%(-4)

будет равен -3.

Знаки оператора инкремента и декремента могут размещаться как до, так и после переменной. Эти варианты называются соответственно префиксной и постфиксной записью этих операторов. При префиксной записи оператор возвращает значение своего операнда после вычисления выражения. При постфиксной записи оператор сначала возвращает значение своего операнда и только после этого вычисляет инкремент или декремент.

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

3.5.2. Операторы отношения и логические операторы

Для создания логических выражений используются операторы сравнения и  логические операторы, применяемые к переменным любого типа.

Операторы сравнения аналогичны соответствующим операторам языка C и приведены в табл. 8.4.

Таблица 8.4.  Операторы сравнения языка JavaScript

Оператор

Действие

==

Равно

!=

Не равно

>=

Больше или равно

<=

Меньше или равно

>

Строго больше

<

Строго меньше

Результатом операции сравнения являются логические значение true или false.

Логические операции представлены в табл. 8.5. В примерах предполагается, что переменная var1 = 'Кит', var2 = 'Кот', var3 = false.

Таблица 8.5. Логические операции языка JavaScript

Оператор

Синтаксис

Действие

Пример

&& (логическое И)

выражение-1 && выражение-2

Возвращает выражение-1, если оно преобразуется или равно false, иначе выражение-2

var1 && var2

(равно 'Кот')

var2 && var3 (равно false)

|| (логическое ИЛИ)

выражение-1 || 

 выражение-2

Возвращает выражение-1, если оно преобразуется или равно true, иначе выражение-1

var1 || var2 (равно 'Кит')

var3 || var1(равно 'Кит')

var3 || false (равно false)

!

(логическое НЕ)

! выражение

Если выражение равно true, возвращает false; если выражение равно false, возвращает true

!var1 (равно false)

!var3 (равно true)

При использовании этих операторов в выражении результат выполнения оператора будет равен true, если соответствующее сравнение или логический выражение является истиной, в противном случае значение выражения равно false.

3.5.3. Оператор конкатенации

Строковые операторы используются для создания строковых выражений. В JavaScript существует только один строковый оператор – оператор конкатенации (соединения) строк "+". Этот оператор присоединяет к строковому значению первого операнда строковое значение второго, получая результат, равный соединению строк.

Оператор "+" может использоваться со смешанными типами операндов. Все операнды приводятся к строковому типу, если хотя бы один из операндов содержит строковый литерал.

3.5.4. Условный оператор

Условный оператор является единственным оператором, использующим три операнда. Его значением является значение одного из двух операндов (второго или третьего), в зависимости от условия истинности для первого операнда. Условный оператор имеет следующий синтаксис:

(условие) ? значение-1 : значение2;

Если операнд условие имеет значение true, то результатом выполнения условной операции будет значение-1, в противном случае – значение-2.

3.5.5. Составные операторы присваивания

Кроме простого оператора присваивания "=", так же как и в C, существуют составные операторы присваивания, совмещенные с арифметическими и поразрядными логическими операторами. В этих операторах производятся арифметические или поразрядные логические действия над правым операндом, и результат присваивается переменной, заданной левым операндом.

3.5.6. Старшинство операций в JavaScript  

В табл. 8.6 приведено старшинство операторов JavaScript. С помощью этой таблицы можно определить порядок вычисления операций в выражениях, содержащих различные типы операций. При этом следует учитывать, что все логические операции выполняются слева направо.

Первыми выполняются операторы, расположенные в начале таблицы старшинства.

Таблица 8.6. Старшинство операций языка JavaScript

Операторы

Описание

. [] ()

Доступ к полю, индексирование в массиве, вызов функции.

++ -- - ~ !

Операции, выполняемые над одним операндом.

* / %

Умножение, деление, вычисление остатка от деления.

+ - +

Сложение, вычитание, слияние текстовых строк.

<< >> >>>

Битовые сдвиги.

< <= > >=

Меньше, меньше или равно, больше, больше или равно.

== !=

Равенство, неравенство.

&

Поразрядная операция И.

^

Поразрядная операция ИСКЛЮЧАЮЩЕЕ ИЛИ.

|

Поразрядная операция ИЛИ.

&&

Логическая операция И.

||

Логическая операция ИЛИ.

? :

Условная операция.

=  +=  -=  *=  /=  %= >>=

>>>=  <<=  |=  &= ^=

Присваивание.

,

Многократное вычисление.

3.6. Предложения управления в JavaScript

Весь набор предложений управления языка JavaScript можно разбить на три группы:

  •  предложения выбора, или условные предложения;
  •  предложения цикла;
  •  предложения манипулирования с объектами.

3.6.1. Предложения выбора

В программе часто встречаются ситуации, когда необходимо выполнить предложение или группу предложений в зависимости от определенных условий. Для этих целей в JavaScript можно использовать  условное предложение if...else и переключатель switch.

Условное предложение if...else применяется, если необходимо вычислить некоторый блок операторов в зависимости от истинности заданного условия, и имеет следующий синтаксис:

if(условие)

{

предложения-1

}

[else 

{

предложения-2

} ]

Первая группа предложений –  предложения-1 выполняется при условии истинности выражения условие. Необязательный блок else задает группу предложений предложения-2, которая будет выполнена в случае ложности условия, заданного в if.

Фигурные скобки, отмечающие группу выполняемых предложений в блоках if и else, необязательны, если группа состоит из одного предложения.

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

В предложении switch можно задать несколько условий и для каждого из условий – соответствующие действия. Синтаксис этого предложения следующий:

switch (выражение)

{

case значение-1:

[предложения-1]

break;

case значение-2:

[предложения-2]

break;

default:

[предложения-n]

}

Сначала вычисляется значение выражения, заданного в switch. Затем это значение последовательно сравнивается со значением-1, значением-2 и т.д.   

Если значение выражения в блоке switch равно значению-1, то выполняется группа предложений предложения-1, если равно значению-2, то выполняется группа операторов предложения-2 и т. д.  

Если значение выражения не равняется ни одному из значений, заданных в блоках case, то выполняется группа предложений блока default, иначе происходит выход из оператора switch. Блок default в предложении switch можно опустить.

Необязательный оператор break, задаваемый в каждом из блоков case, выполняет безусловный выход из оператора switch. Если он не задан, то продолжается выполнение операторов в следующих блоках case до первого оператора break или до конца тела оператора switch.

3.6.2. Предложения цикла

Предложения цикла повторно выполняют тело цикла –группу предложений, заключенную в фигурные скобки (если тело цикла содержит только одно предложения, скобки необязательны). В языке JavaScript определены три предложения цикла: for, while и dowhile.  Они отличаются механизмом организации цикла.

3.6.2.1. Предложение цикла for

Предложение цикла for позволяет организовать выполнение блока операторов заданное число раз. Предложение имеет следующий синтаксис:

for([инициализирующее-выражение];[условие];[изменяющее-выражение]) 

{

[операторы]

}

Параметром инициализирующее-выражение задается и инициализируется переменная цикла. Это выражение вычисляется один раз в начале выполнения цикла. После этого проверяется истинность выражения условие. Если оно истинно, то выполняется тело цикла; затем вычисляется изменяющее-выражение, и снова проверяется истинность выражения условие. Если оно истинно, то повторяется цикл вычислений, если нет, то предложение цикла for завершает свое выполнение.

Инициализирующее-выражение, изменяющее-выражение и условие окончания цикла не являются обязательными, и любое из них может быть опущено. Однако следует оставлять разделитель ";" для правильной интерпретации оставшихся выражений.

В параметрах цикла for можно использовать оператор запятая – ",". Этот оператор имеет следующий синтаксис:

выражение-1,выражение-2  

Сначала вычисляется выражение-1, а затем выражение-2.

3.6.2.2. Предложение цикла while

Цикл while выполняется, пока истинно выражение, задающее условие выполнения цикла. Его синтаксис следующий:

while(условие) 

тело-цикла

Сначала проверяется истинность условия, заданного в заголовке цикла, а затем выполняются (или не выполняются) операторы тела-цикла. Проверка истинности условия осуществляется на каждом шаге цикла. Использование этого цикла предполагает, что условное выражение окончания цикла меняется в зависимости от вычисленных значений переменных и выражений в теле цикла.

3.6.2.3. Предложение цикла dowhile

Цикл dowhile имеет следующий синтаксис:

do

 тело-цикла

while(условие)

Этот цикл работает несколько иначе, чем в цикл while. Если в цикле while условие проверяется перед началом выполнения цикла, то в цикле dowhile оно проверяется после выполнения цикла, т.е. цикл всегда будет выполняться хотя бы один раз.

3.6.3. Предложения перехода

Иногда необходимо завершить цикл не по условию, задаваемому в заголовке цикла, а в результате вычисления некоторого условия в теле цикла. Для этой цели в JavaScript в предложениях for, while и dowhile можно использовать предложения  break и continue.

3.6.3.1. Предложение break

Предложение break завершает выполнение цикла и передает управление оператору, непосредственно следующим за оператором цикла. Синтаксис предложения:

break метка

где метка является идентификатором JavaScript. В этом случае перед предложением цикла,  за пределы которого передается управление, должен стоять идентификатор метки,   за которым следует символ ":". Если метка в предложении break опущена, управление передается за пределы цикла, внутри которого находится предложение break.

3.6.3.2. Предложение continue

Предложение continue прекращает выполнение текущей итерации и начинает выполнение следующей, т. е. в цикле while он передает управление на проверку выражения условие цикла, а в цикле for – на   вычисление выражения изменяющее-выражение. Так же, как в предложении break, в continue также можно указать метку цикла, в котором будет прекращаться текущая итерация (если метка не указана, прекращается выполнение итерации в цикле, в котором находится данное предложение continue).

4. Порядок выполнения работы

Создайте интерактивную Web-страницу с использованием языка JavaScript по одному из приведенных ниже вариантов.

Вариант 8-01

Создайте Web-страницу, проверяющую имя и пароль пользователя (для примера использовать три произвольных имени и пароля). Диалог с пользователем выполняется с помощью окон alert и prompt. Сначала выдается запрос на ввод имени пользователя. Если имя введено неверно, выдается сообщение и работа заканчивается, иначе выдается запрос на ввод пароля. Сообщение и верном или неверном вводе пароля выдается пользователю, и работа заканчивается.   

Вариант 8-02

Создайте Web-страницу, проверяющую имя и пароль пользователя (допустимые имена и пароли задаются в виде массивов). Web-страница должна содержать заголовок «Карта заказа читателя электронной библиотеки». Ввод имени и пароля производится с использованием метода prompt.  После ввода имени и пароля они проверяются (для примера использовать три произвольных имени и пароля). Если имя и пароль введены правильно, должно быть выведено сообщение «Читатель имя_читателя зарегистрирован», иначе – сообщение «Имя и/или пароль введены неправильно» (вывод этих сообщений выполняется с помощью метода alert).

Вариант 8-03

Создайте Web-страницу, определяющую возраст пользователя методом двоичного поиска с помощью следующего алгоритма:

 1. Определяется диапазон поиска в интервале от 0 до 128 лет.

2. Задается вопрос о возрасте.

3. Если возраст больше 128 лет, работа программы прекращается.

4. Диапазон поиска уменьшается вдвое.

5. Задается вопрос о возрасте.

6. Если диапазон поиска больше или равен 2, переход к пункту 4.

7. В случае утвердительного ответа на последний вопрос, возраст принимается  на единицу меньшим верхней границе диапазона, иначе – равным верхней     границе диапазона.

Диалог с пользователем выполняется с помощью окон confirm и alert.

Вариант 8-04

Создайте Web-страницу, для определения возраста пользователя по следующему алгоритму:

 1. Запрашивается текущий год.

2. Запрашивается год рождения.

3. Задается вопрос, был ли в этом году день рождения.

4. По полученным данным рассчитывается год.

Диалог с пользователем выполняется с помощью окон confirm и alert.

Вариант 8-05

Создайте Web-страницу, для определения года рождения пользователя по следующему алгоритму:

 1. Запрашивается текущий год.

2. Запрашивается возраст пользователя.

3. Задается вопрос, был ли в этом году день рождения.

4. По полученным данным рассчитывается год.

Диалог с пользователем выполняется с помощью окон confirm и alert.

Вариант 8-06

Создайте Web-страницу для тестирования с заголовком «Ответьте на следующие тестовые вопросы». Пользователю выводятся вопросы, на которые предлагаются несколько вариантов ответов. Номер правильного ответа вводится с использованием диалогового окна prompt. C помощью окна alert пользователю выдается сообщение, был ли ответ правильным или неправильным (для примера используйте три вопроса, каждый с тремя вариантами ответов).  После окончания тестирования пользователю выдается (с помощью окна alert) процент правильных ответов.

Вариант 8-07

Создайте Web-страницу,  в которой по введенным с помощью окна параметрам:  prompt номеру дня в месяце,  наименованию месяца и типу года (високосный или не високосный) подсчитывается и выдается (с помощью окна alert) номер дня в году. Указание: количество дней до начала данного месяца (невисокосный год): январь – 0, февраль – 31, март – 59, апрель – 90, май – 120, июнь – 151, июль – 181, август – 212, сентябрь – 243, октябрь – 273, ноябрь – 314, декабрь – 334.  В високосном году, начиная с марта, к количеству дней добавляется 1.

Вариант 8-08

Создайте Web-страницу, выполняющую перевод слов с английского языка на русский язык. Ввод английских слов выполняется с помощью окна prompt, вывод соответствующего русского слова или сообщения о том, что данное слово не найдено производится с помощью окна alert (для примера задайте переводы для трех слов).

Вариант 8-09

Создайте Web-страницу, определяющую среднее значение введенных с помощью окна prompt чисел. Ввод чисел прекращается при вводе в окно prompt пустой строки, после этого производится  подсчет среднего значения введенных чисел и его вывод с помощью окна alert. С помощью окна confirm выдается запрос на подсчет нового среднего значения или прекращение работы.

Вариант 8-10

Создайте Web-страницу, подсчитывающую результат математических операций над числами. Последовательный ввод первого операнда, знака действия (+, -, * или /) и второго операнда выполняется с помощью окна prompt. В случае задания неверного знака операции выдается запрос на его повторный ввод. Результат выводится в окне alert, а затем с помощью окна confirm выводится запрос на продолжение вычислений или прекращение работы.

Вариант 8-11

Создайте Web-страницу, определяющую максимальное и минимальное значения среди  введенных с помощью окна prompt чисел. Ввод чисел прекращается при вводе в окно prompt пустой строки. Определенные в процессе ввода максимальное и минимальное значения выводятся  с помощью окна alert. С помощью окна confirm выдается запрос на подсчет новой суммы чисел или прекращение работы.

Вариант 8-12

Создайте Web-страницу, в которой определяется взаимное расположение круга и квадрата. Круг задается (с помощью окна prompt) координатами центра и радиусом, квадрат – координатами левой верхней вершины и длиной стороны. Возможны следующие варианты: круг и квадрат не имеют общих точек; круг лежит внутри квадрата; квадрат лежит внутри круга; круг и квадрат пересекаются. Вариант ответа   выводится  с помощью окна alert. С помощью окна confirm выдается запрос на ввод новых значений или прекращение работы.

Вариант 8-13

Создайте Web-страницу, в которой вводятся (с помощью окна prompt) координаты вершин треугольника и координаты точки.  Возможны следующие варианты: точка лежит внутри треугольника, точка лежит вне треугольника и точка лежит на одной из сторон треугольника.  Вариант ответа   выводится  с помощью окна alert. С помощью окна confirm выдается запрос на ввод новых значений или прекращение работы. Примечание: точка P лежит внутри треугольника ABC, если сумма площадей треугольников APB, BPC и APC равна площади треугольника ABC. Площадь S треугольника ABC определяется по формуле:

S =|Ax(ByCy) + Bx(CyAy) + Cx(AyBy)|

Вариант 8-14

Создайте Web-страницу, в которой определяется взаимное расположение двух кругов. Круги задается (с помощью окна prompt) координатами центра и радиусом. Возможны следующие варианты: круги не имеют общих точек; один круг лежит внутри другого круга; круги имеют точку касания; круги пересекаются. Вариант ответа   выводится  с помощью окна alert. С помощью окна confirm выдается запрос на ввод новых значений или прекращение работы.

Вариант 8-15

Создайте Web-страницу, в которой определяется, является ли введенное  (с помощью окна prompt) число совершенным. Совершенным называется число, равное сумме своих делителей (не считая самого числа, но считая единицу). Ответ   выводится  с помощью окна alert. С помощью окна confirm выдается запрос на ввод новых значений или прекращение работы.

Вариант 8-16

Создайте Web-страницу, в которой определяется, является ли введенные  (с помощью окна prompt) два числа дружественными. Дружественными называются числа, каждое из которых  равно сумме делителей  другого числа (не считая самого числа, но считая единицу). Ответ   выводится  с помощью окна alert. С помощью окна confirm выдается запрос на ввод новых значений или прекращение работы.

Вариант 8-17

Создайте Web-страницу, в которой определяется, является ли введенное  (с помощью окна prompt) число числом Фибоначчи. Числами Фибоначчи называются элементы числовой последовательности, в которой первые два элемента равны 1, а каждый следующий элемент является суммой двух предыдущих элементов. Ответ   выводится  с помощью окна alert. С помощью окна confirm выдается запрос на ввод новых значений или прекращение работы.

Вариант 8-18

Создайте Web-страницу, в которой определяется, является ли два введенных  (с помощью окна prompt) чисел  близнецами. Два натуральных числа являются близнецами, если они оба являются простыми числами и разница между ними равна 2. Ответ   выводится  с помощью окна alert. С помощью окна confirm выдается запрос на ввод новых значений или прекращение работы.

Вариант 8-19

Создайте Web-страницу, в которой определяется наибольший общий делитель для двух введенных  (с помощью окна prompt) чисел. Ответ   выводится  с помощью окна alert. С помощью окна confirm выдается запрос на ввод новых значений или прекращение работы.

Вариант 8-20

Создайте Web-страницу, в которой определяется, являются ли два введенных  (с помощью окна prompt) чисел взаимно простыми. Взаимно простые числа не имеют общих делителей, кроме 1.  Ответ   выводится  с помощью окна alert. С помощью окна confirm выдается запрос на ввод новых значений или прекращение работы.

Вариант 8-21

Создайте Web-страницу, в которой с помощью метода prompt вводятся числа и определяется максимальная и минимальная разность между введенными числами. После окончания ввода (при вводе пустой строки) найденные значения выводятся с помощью метода alert.

Вариант 8-22

Создайте Web-страницу, в которой с помощью метода prompt вводятся числа и определяется максимальная по длине неубывающая последовательность чисел. Признаком окончания ввода чисел является пустая строка. Длина найденной последовательности выводится с помощью метода alert.

Вариант 8-23

Создайте Web-страницу, в которой с помощью метода prompt вводятся числа. Признаком окончания ввода чисел является пустая строка. Определите, образуют ли значения вводимых чисел возрастающую, неубывающую, убывающую или невозрастающую последовательность или же числа не упорядочены. Результат проверки выводится с помощью метода alert.

Вариант 8-24

Создайте Web-страницу, в которой с помощью метода prompt вводятся числа. Признаком окончания ввода чисел является пустая строка. Определите, образуют ли значения чисел арифметическую или геометрическую прогрессию, или же не образуют никакой последовательности.  Результат проверки выводится с помощью метода alert.

Вариант 8-25

Создайте Web-страницу, в которой с помощью метода prompt вводятся числа. Признаком окончания ввода чисел является пустая строка. Определите, сколько положительных, отрицательных и нулевых значений содержится среди введенных чисел.  Результат выводится с помощью метода alert.

Вариант 8-26

Создайте Web-страницу, в которой с помощью метода prompt вводятся числа. Признаком окончания ввода чисел является пустая строка. Определите количество четных и нечетных чисел среди введенных чисел. Результат выводится с помощью метода alert.

Вариант 8-27

Создайте Web-страницу, в которой с помощью метода prompt вводится число, затем вводится последовательность чисел. Признаком окончания ввода последовательности чисел является пустая строка. Определите количество чисел в последовательности, которые делятся нацело на введенное число. Результат выводится с помощью метода alert.

Вариант 8-28

Создайте Web-страницу, в которой с помощью метода prompt вводится последовательность чисел. Признаком окончания ввода последовательности чисел является пустая строка. Определите количество простых чисел в последовательности. Результат выводится с помощью метода alert.

Вариант 8-29

Создайте Web-страницу, в которой с помощью метода prompt вводится последовательность чисел, по величине не превышающих 1000. Признаком окончания ввода последовательности чисел является пустая строка. Определите количество однозначных, двузначных и трехзначных чисел в последовательности. Результат выводится с помощью метода alert.

Вариант 8-30

Создайте Web-страницу, в которой с помощью метода prompt вводится число, затем вводится последовательность чисел. Признаком окончания ввода последовательности чисел является пустая строка. Определите процент чисел в последовательности, меньших введенного числа. Результат выводится с помощью метода alert.

5. Содержание отчета

В отчете должен быть представлен тексты файлов, содержащих созданные Web-страницы.

6. Вопросы для самоконтроля

  1.  Какие элементы программы определены в JavaScript?
  2.  Каковы правила записи предложений, функций и комментариев на языке JavaScript?
  3.  Какие типы данных определены в языке JavaScript? Что такое свободное использование типов?
  4.  Как записываются литералы разных типов в JavaScript?
  5.  Как определяются и вызываются функции в JavaScript?
  6.  Какие встроенные функции JavaScript используются для ввода и вывода данных в Web-страницу?
  7.  Как вставить программу на JavaScript в Web-страницу?
  8.  Как задать программу на JavaScript в отдельном файле и как вставить ее в нужном месте в Web-страницу?
  9.  Как вывести сообщение для Web-браузеров, не поддерживающих язык JavaScript?
  10.  Какие виды выражений определены в JavaScript?
  11.  Как функционирует условный оператор JavaScript?
  12.  Какие предложения выбора определены в JavaScript и как они функционируют?
  13.  Какие разновидности предложений цикла определены в JavaScript, и каковы особенности их функционирования?
  14.  Для каких целей используется метка в предложениях break и continue?


 

А также другие работы, которые могут Вас заинтересовать

38978. Повышение износостойкости рабочей поверхности цилиндра после восстановления. Методы упрочнения рабочей поверхности 7.84 MB
  Объект исследования – рабочая поверхность цилиндров автомобильного двигателя. Рассмотрены назначения конструктивно – технологические особенности и условия эксплуатации рабочей поверхности цилиндров автомобильных двигателей. Предложены новые технологии упрочнеия: Алюминиевые рабочие поверхности цилиндров финишное плазменное упрочнение анодномеханическое хонингование фторуглеродная обработка цилиндров АВТОМОБИЛЬНЫЙ ДВИГАТЕЛЬ РАБОЧИЙ ЦИЛИНДР ГИЛЬЗА ЦИЛИНДРА ИЗНАШИВАНИЕ ТЕХНОЛОГИЯ ВОССТАНОВЛЕНИЯ АЛЮМИНИЕВОКРЕМНИЕВЫЙ СПЛАВ РАСКРЫТИЕ...
38980. Усовершенствование системы администрирование cs-cart 161.35 KB
  В этой функции изменяются значения массивов fields и join Контроллеры Базовая схема работы cscrt заключается в вызове одного из двух основных исполняемых PHP файловdmin.php и дальнейшего последовательного подключения PHP файлов реализующих функциональность программы. Для передачи в темплейтер данных для последующего отображения используется следующая конструкция: view ssign'templte_vr_nme' php_vr_nme; Здесь templte_vr_nme задает имя переменной доступной в темплейтере а php_vr_nme определяет содержимое этой переменной....
38981. Підвищення зносостійкості робочої поверхні циліндра автомобільного двигуна 1.65 MB
  Мета дослідження – Підвищення зносостійкості робочої поверхні. Вирішені питання технологічного забезпечення якості робочої поверхні циліндра при відновленні з урахуванням особливості конструкції: монолітний блок з’ємні гільзи. Розглянуті технологічні засоби забезпечення якісної обробки робочої поверхні.1 Дефекти робочої поверхні гільз 15 2.
38982. Модернизация системы питания автомобиля КамАЗ-6460 с двигателем КамАЗ-740.50-360 для работы на компримированном природном газе 2.39 MB
  3Параметры окружающей среды и остаточные газы Принимаем атмосферные условия: МПа К. Принимаем давление надувочного воздуха: МПа Принимаем показатель политропы сжатия в компрессоре Определяем температуру воздуха за компрессором: К 2. Определяем давление и температуру остаточных газов: МПа...
38983. Разработка корпоративного сайта для обеспечения документооборота предприятия ФГУП «Серовский Механический Завод» 3.68 MB
  Исходя из вышеуказанной цели исследования его задачами является: Изучение основных аспектов разработки корпоративных систем документооборота посредством интранетсайта Изучить основные аспекты деятельности предприятия ФГУП Серовский механический завод и его ведение документооборота Выявить основные проблемы информационной среды в организации ФГУП Серовский механический завод и найти пути их решения Разработать интранетсайт на базе PHP и разработать сопровождающие документы на созданное приложение. С другой стороны PHP как...