42246

Создание объектов в языке JavaScript, регулярные выражения и обработка ошибок

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

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

Опции шаблона регулярного выражения Опция Назначение g Глобальный поиск т. Свойства объекта Regulr Expression Имя Значение Тип возвращаемого значения Возможность изменения globl Состояние опции g true включена или flse выключена Только для чтения ignoreCse Состояние опции i true включена или flse выключена Только для чтения multiline Состояние опции m true включена или flse выключена Только для чтения source Копия строки шаблона регулярного выражения Строка Только для чтения lstIndex Позиция того символа в строке с которой...

Русский

2013-10-28

496.5 KB

9 чел.

 47 -

Лабораторная работа 2-10

Создание объектов в языке JavaScript, регулярные выражения и обработка ошибок

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

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

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

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

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

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

3.1. Создание пользовательских объектов и экземпляров объектов

Для создания пользовательского объекта, прежде всего, следует определить функцию-конструктор  для данного объекта. В этой функции определяются свойства и методы для данного объекта. Определение функции-конструктора в JavaScript имеет следующий синтаксис:

function имя-объектного-типа(параметр-1, параметр-2,...)

{

this.свойство-1 = параметр-1;

this.свойство-2 = параметр-2;

...

this.имя-метода-1 = имя-функции-1;

this.имя-метода-2 = имя-функции-2;

...

}

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

Далее в функции-конструкторе следуют предложения, определяющие методы для данного объектного типа. В этих предложениях указывается, что для выполнения метода с именем имя-метода будет вызвана функция с именем имя-функции.   

Функции для методов данного объектного типа определяются отдельно:

function имя-функции-1(параметры-1)

{

тело функции-1

}

function имя-функции-2(параметры-2)

{

тело функции-2

}

...

Создание нового экземпляра объекта выполняется с помощью предложения new:

var имя-объекта = new имя-объектного-типа(аргумент-1, аргумент-2,...)

Обращение к свойствам и методам созданного объекта выполняется с использованием точечной нотации:

имя-объекта.свойство-1

имя-объекта.метод-1(агрументы-1)

3.2. Регулярные выражения в JavaScript

Регулярные выражения используются для решения следующих задач:

  •  проверки данных на наличие некоторой последовательности данных, заданных с помощью определенного образца, называемого шаблоном (pattern);
  •  замены или удаления данных.

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

3.2.1. Объект Regular Expression

Объект Regular Expression содержит шаблон, а также опции, которые используются при поиске строки. Объект может быть создан одним из двух способов:

var имя-переменной =  /шаблон/ [опции]

или

var имя-переменной = new RegExp("шаблон"[,"опции "]). 

В первом случае объект для заданного шаблона создается напрямую.  

Во втором случае создание объекта выполняется с помощью клонирования встроенного объекта RegExp.

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

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

Таблица 10.1. Опции шаблона регулярного выражения

Опция

Назначение

g

Глобальный поиск, т.е поиск всех соответствий шаблону в строке.

i

Поиск без учета регистра символов.

m

Поиск в нескольких строках. Строки внутри строки задаются с помощью символа "\n".

 

Объект Regular Expression имеет свойства, приведенные в табл. 10.2.

Таблица 10.2. Свойства объекта Regular Expression

Имя

Значение

Тип возвращаемого значения

Возможность изменения

global

Состояние опции g

true (включена) или false (выключена)

Только для чтения

ignoreCase

Состояние опции i

true (включена) или false (выключена)

Только для чтения

multiline

Состояние опции m

true (включена) или false (выключена)

Только для чтения

source

Копия строки шаблона регулярного выражения

Строка

Только для чтения

lastIndex

Позиция того символа в строке, с которой начнется следующий поиск соответствия исходной строки шаблону или -1, если соответствие не найдено

Целое число

Изменяется с помощью функций exec(), test(), match(), replace() и split()

Объект Regular Expression содержит также встроенные функции, приведенные в табл. 10.3.

Таблица 10.3. Функции объекта Regular Expression

Вызов

Действие

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

test(строка)

Проверка наличия соответствия шаблону в строке.

true, если шаблон содержится в строке и false –в противном случае.

exec(строка)

Выполняет поиск в строке с использованием шаблона.

Если шаблон, не найден в строке, метод возвращает значение null. В противном случае метод возвращает переменную, содержащую результат поиска соответствия шаблону. Если в шаблоне поиска установлена опция g, то каждый следующий поиск начинается с позиции в строке, соответствующей текущему значению свойства lastIndex, в противном случае каждый поиск начинается с начала строки.

compile(

"шаблон"[,"опции "])

Преобразует шаблон во внутренний формат для более быстрого выполнения с использованием заданных опций.

Не возвращает значения.

Возвращаемое функцией exec()в результате поиска значение имеет два свойства:

  •  index, содержащее позицию начала найденного соответствия шаблону (первая позиция в строке равна 0);
  •  input, содержащее исходную строку, в которой производится поиск.   

3.2.2. Встроенный объект RegExp

Для доступа к результатам поиска с использованием регулярного выражения в JavaScript определен также внутренний глобальный объект RegExp.  Этот объект, также как  и объекты Global и Math, создается самим интерпретатором и доступен всегда, поэтому  доступ к его свойствам выполняется следующим образом:

RegExp.свойство

Для объекта RegExp определены свойства, приведенные в табл. 10.4 (эти свойства доступны только для чтения).

Таблица 10.4. Свойства объекта RegExp

Имя

Значение

Определено в Web-браузерах

index

Позиция в строке найденного соответствия шаблону.

Internet Explorer

lastIndex

Позиция того символа в строке, с которой начнется следующий поиск соответствия исходной строки шаблону или -1, если соответствие не найдено

Internet Explorer

lastMatch 

(сокращение $&)

Последнее найденное соответствие шаблону.

Internet Explorer

Firefox

Netscape

lastParen 

(сокращение $+)

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

Internet Explorer

Firefox

Netscape

Opera

leftContext

Строка, составленная из всех символов от начала исходной строки до последнего найденного соответствия шаблону, но не включая его

Internet Explorer

Firefox

Netscape

Opera

rightContext

Строку, составленная из всех символов от последнего найденного соответствия шаблону, но не включая его, до конца исходной строки

Internet Explorer

Firefox

Netscape

Opera

$1 - $9

Одно их последних найденных групп символов (в круглых скобках)  в зависимости от заданного номера (от 1 до 9)

Internet Explorer

Firefox

Netscape

Opera

Кроме того, глобальный объект RegExp поддерживает все свойства и функции, унаследованные от класса Object.

Поскольку свойства index, lastIndex и lastMatch объекта RegExp не поддерживаются всеми Web-браузерами, вместо них можно использовать свойства index и lastIndex объекта Regular Expression, а также (вместо свойства lastMatch), текущее значение, возвращаемое функцией exec().

Глобальный объект RegExp не следует путать с объектом Regular Expression. Свойства объекта RegExp содержат постоянно меняющуюся информацию о каждом найденном соответствии, в то время как свойства объекта Regular Expression содержат информацию только о соответствиях для данной реализации объекта.

3.2.3. Поиск и изменение строки с помощью регулярных выражений

Для поиска и замены в строках с использованием регулярных выражений можно использовать функции встроенного объекта String, приведенные в табл. 10.5.

Таблица 10.5. Функции встроенного объекта String, использующие регулярные выражения

Вызов

Действие

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

match(объект-Regular-Expression)

Поиск соответствий шаблону, заданному в параметре объект-Regular-Expression.

Массив найденных соответствий шаблону в строке, либо null, если не найдено ни одного соответствия. Если в шаблоне задана опция g, возвращаются все найденные соответствия, иначе ищется только первое соответствие, и массив будет состоять из одного элемента.

replace(

объект-Regular-Expression, 

строка-замены)

Выполнение изменений, заданных в  строке-замены строке для найденных соответствий шаблону, заданному в параметре объект-Regular-Expression.

Копия исходной строки с изменениями, заданными в параметре строка-замены.

split(объект-Regular-Expression[, предел])

Строки разбиваются в соответствии с разделителями, формируемыми с помощью шаблона, заданного в параметре объект-Regular-Expression. Второй необязательный параметр предел задает предельное количество формируемых элементов массива (если этот параметр не задан, в массив помещаются все подстроки строки).

Массив подстрок исходной строки.

Помимо обычных символов в строке-замены функции replace() можно использовать символы, приведенные в табл. 10.6.

Таблица 10.6. Символы со специальным значением в строке замены функции replace()

Символы

Значение

$&

Фрагмент заменяемой строки, для которого найдено соответствие.

$`

Фрагмент заменяемой строки, который предшествует соответствию, найденному в $&.

$’

Фрагмент заменяемой строки, который следует за соответствием, найденным в $&.

$1 - $9

Найденные и сохраненные группы символов (в круглых скобках) с номером от 1 до 9.

3.2.4. Синтаксис шаблона

Шаблоны в JavaScript записываются с использованием специального синтаксиса, использующего зарезервированные символы.

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

/abc/.

означает строку, состоящую из символов abc.

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

^ $ ( ) \ | [ { ? . + *

Если  в регулярном выражении необходимо рассматривать специальный символ как обычный символ, перед ним надо поставить символ "\", например, "\(" или "\\".

Использование метасимволов в шаблонах приведено в табл. 10.7.

Таблица 10.7. Использование метасимволов в шаблонах

Выражение

Соответствие

шаблон-1|шаблон-2

Либо шаблону-1, либо шаблону-2.

.

Любому одиночному символу, кроме символа перевода строки.

+

Предшествующий символ встречается один или более раз.

*

Предшествующий символ встречается 0 или более раз.

?

Предшествующий символ встречается 0 или один раз.

{n,m}

n – минимально допустимое количество повторений предшествующего символа, m – максимально допустимое количество повторений. Один из параметров n или m можно опустить.

.*

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

.*?

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

[символы]

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

[символ-1-символ-2]

Любой из символов диапазоне от  символ-1 до символ-2.

[^символы]

Ни один из символов, перечисленных внутри скобок.

[^символ-1-символ-2]

Ни один из символов диапазоне от  символ-1 до символ-2.

\xhh

Символ с шестнадцатеричным кодом hh в однобайтовой кодировке.

uhhhh

Символ Unicode с шестнадцатеричным кодом hhhh.

\cx

Управляющий символ x.

\f

Символ перехода на новую страницу (эквивалентно \x0c или \cL).

\n

Символ новой строки (эквивалентно \x0a или \cJ).

\r

Символ возврата каретки (эквивалентно \x0d или \cM).

\s

Любой пробельный символ (эквивалентно [\f\n\r\t\v]).

\S

Любой непробельный символ (эквивалентно [^\f\n\r\t\v]).

\t

Символ горизонтальной табуляции (эквивалентно \x09 или \cI).

\v

Символ вертикальной табуляции (эквивалентно \x0b или \cK).

\d

Любой цифровой символ (эквивалентно [0-9]).

\D

Любой нецифровой символ (эквивалентно [^0-9]).

\w

Любая латинская буква или цифра (эквивалентно [A-Za-z0-9]).

\W

Любому небуквенный (латинский) и нецифровой символ (эквивалентно [^A-Za-z0-9]).

\i

Обратная ссылка с номером i к сохраненному соответствию.

^шаблон

Найдено в начале строки.

шаблон$

Найдено в конце строки.

\b

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

\B

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

(символы)

Группа символов, рассматриваемая как один элемент. При поиске элементы запоминаются в специальных переменных $1 - $9.

(?:символы)

Группа символов, рассматриваемая как один элемент. При поиске элементы не запоминаются.

(?=символы)

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

(?!символы)

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

3.3. Обработка ошибок в JavaScript

3.3.1. Принципы обработки ошибок

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

  •  ошибочное программирование (например, задание недопустимого индекса массива или неопределенного значения переменной);
  •  ввод пользователем неверных данных (например, задание значения делителя равным нулю).

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

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

3.3.2. Объект Error

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

Если программа на языке JavaScript не обрабатывает ошибку, то объект передается обработчику по умолчанию среды выполнения сценариев Web-браузера. Обработчик выводит сообщение об ошибке и прекращает выполнение программы.

При возникновении типовых ошибок в JavaScript создается экземпляр объекта Error.

Свойства объекта Error приведены в табл. 10.8 (набор свойств в разных Web-браузерах разный).

Таблица 10.8. Свойства объекта Error

Имя

Значения

Определено в Web-браузерах

description

Описание ошибки.

Internet Explorer

number

Номер (код) ошибки.

Internet Explorer

name

Имя (идентификатор) ошибки.

Internet Explorer

Firefox

Opera

Netscape

message

Сообщение, связанное с ошибкой.

Internet Explorer

Firefox

Opera

Netscape

fileName

Имя файла с Web-страницей, в которой произошла ошибка.

Firefox

Netscape

lineNumber

Номер строки в файле, в которой произошла ошибка.

Firefox

Netscape

stack

Трассировка ошибки.

Firefox

Netscape

Кроме того, для объекта Error определены свойства constructor и prototype, а также функция toString() объекта Global (эта функция не определена в Internet Explorer).

Как видно из списка свойств, общими для всех распространенных Web-браузеров являются свойства name и message, и поэтому только их рекомендуется использовать при обработке ошибок.  

Следует отметить, что при делении на ноль или невозможности преобразования строки в число, объект Error не создается. В этом случае переменной просто присваивается значение infinity или NaN.

3.3.3. Механизм обработки ошибок в JavaScript 

В сценарии на языке JavaScript могут возникать ошибки одного из трех видов:

  •  ошибки из-за неправильного синтаксиса сценария (например, из-за нарушения баланса скобок – в предложении должна быть и открывающая и закрывающая скобка);
  •  ошибки времени выполнения (например, использование в правой части оператора присваивания переменной, которая не объявления и которой не присвоено никакого значения);
  •  пользовательские ошибки, т.е. ошибки, специфичные для данного сценария (например, неверный индекс элемента массива).

Для первых двух видов ошибок объект Error генерируется автоматически, однако набор этих ошибок, их имена и связанные с ними сообщения в разных Web-браузерах могут быть разными.  

Механизм обработки таких ошибок в JavaScript сводится к следующим действиям:

  1.  Оператор или операторы JavaScript, в которых может произойти ошибка, помещаются в блок try;
  2.  Сразу же после блока try помещается блок catch с параметром e, в котором производится обработка ошибок;
  3.  Если при выполнении операторов в блоке try ошибка не возникает, все операторы блока выполняются, а затем будут выполняться операторы, следующие за блоком catch;
  4.  Если при выполнении какого-либо оператора в блоке try произошла ошибка, все операторы блока try, следующие за ошибочным оператором, пропускается  и  управление передается в блок catch, обрабатывающий ошибки;
  5.  После блока catch может быть задан блок finally, операторы которого выполняются, независимо от того, произошла ошибка при выполнении блока try или нет.

3.3.4. Создание и использование объекта Error

В приведенном выше примере создание (или «бросание») объекта Error инициируется средой выполнения сценария JavaScript в Web-браузере. В случае пользовательской ошибки ее обнаружение и обработка также выполняется в блоке trycatchfinally, однако в этом случае пользователь должен:

  •  создать клон объекта Error и задать его свойства;
  •  в блоке try вручную «бросить» созданный объект блоку catch.

Объект  Error создается с помощью одного из следующих предложений:

var имя-объекта-Error = new Error();

var имя-объекта-Error = new Error(сообщение);

В первом случае объект создается со значениями свойств, равными пустой строке, а во втором случае значение параметра сообщение становится значением свойства message.

«Бросание» объекта Error в блоке try выполняется с помощью предложения

throw имя-объекта-Error

Это предложение передает управление в блок catch для обработки «брошенной» ошибки.

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

Создайте пользовательский объект на Web-странице с использованием языка JavaScript в соответствии со своим вариантом. Сообщения об ошибках выдается с помощью функции alert(). В сообщении выводится имя ошибки (свойство name) и связанное с ошибкой сообщение (свойство message).  Функция-конструктор и другие функции для пользовательского объекта задаются в элементе <head>, вызов этих функций – в элементе <body>.

Вариант 10-01

Создайте сценарий в Web-странице, в котором создается пользовательский объект LetterArray (массив букв кириллицы). Для объекта определены следующие ошибки:

  •  WrongLetterError с именем "WrongLetterError" и сообщением "Неверное значение элемента" (в случае, если элемент – не буква кириллицы);
  •  WrongLetterListError с именем "WrongLetterListError" и сообщением "Неверный список элементов" (в случае, если задан неверный список элементов массива).

Параметром функции-конструктора является строка – список букв, отделенных друг от друга пробелом или запятой.

Свойствами объекта LetterArray является length (количество элементов в массиве) и свойство content, содержащего сам массив элементов.

В конструкторе в блоке try выполняется проверка параметра на соответствие следующему шаблону: либо одна буква в строке, либо буква в начале строки, затем  группа из пробела или запятой и буквы (группа может повторяться 0 и более раз), затем буква в конце строки.

Если параметр не соответствует шаблону, «бросается» ошибка   WrongLetterListError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции.

Если параметр соответствует шаблону, с помощью функции split() объекта String выполняется преобразование строки в массив. Значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта LetterArray определены методы hasItem и addItem, реализуемые с помощью функций hasLetterItem и addLetterItem.

Функция hasLetterItem проверяет, если ли в массиве буква, заданная в качестве параметра функции. Сначала в блоке try проверяется соответствии параметра шаблону (буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterItemError, в блоке catch выводится сообщение об ошибке и возвращается значение false,  в противном случае в цикле просматривается элемент свойства content и, если буква, заданная в качестве параметра, найдена в свойстве, возвращается значение true, иначе возвращается false.

Функция addLetterItem добавляет букву, заданную в качестве параметра, в массив. Сначала в блоке try проверяется соответствие параметра шаблону (буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null, иначе буква добавляется в конец массива (свойства content), свойство length увеличивается на 1 и функция возвращает значение добавленной буквы.

Строка, содержащая список букв, вводится с помощью функции prompt() в цикле dowhile. В цикле также создается объект типа LetterArray, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта LetterArray не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  вызов метода hasItem() с неверным значением параметра;
  •  вызов метода hasItem() для буквы, отсутствующей в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasItem() для буквы, которая есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода addItem() и вывод возвращаемого значения с помощью функции alert().

Вариант 10-02

Создайте сценарий в Web-странице, в котором создается пользовательский объект LetterArray (массив букв кириллицы). Для объекта определены следующие ошибки:

  •  WrongLetterError с именем "WrongLetterError" и сообщением "Неверное значение элемента" (в случае, если элемент – не буква кириллицы);
  •  NoLetterError с именем "NoLetterError" и сообщением "Нет элемента" (в случае, если элемента нет во множестве);
  •  WrongLetterListError с именем "WrongLetterListError" и сообщением "Неверный список элементов" (в случае, если задан неверный список элементов множества).

Параметром функции-конструктора является строка – список букв, отделенных друг от друга пробелом или запятой.

Свойствами объекта LetterArray является length (количество элементов в массиве) и свойство content, содержащего сам массив элементов.

В конструкторе в блоке try выполняется проверка параметра на соответствие следующему шаблону: либо одна буква в строке, либо буква в начале строки, затем  группа из пробела или запятой и буквы (группа может повторяться 0 и более раз), затем буква в конце строки.

Если параметр не соответствует шаблону, «бросается» ошибка   WrongLetterListError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции.

Если параметр соответствует шаблону, с помощью функции split() объекта String выполняется преобразование строки в массив. Значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта LetterArray определены методы setToString и deleteItem, реализуемые с помощью функций convertToString и deleteLetterItem.

Функция convertToString (без параметров) преобразует массив в строку и возвращает результат преобразования. В цикле элементы массива с предшествующим символом "," последовательно добавляются  к строке, первоначально состоящей из первого элемента массива.  

Функция deleteLetterItem удаляет букву, заданную в качестве параметра, из массива. Сначала в блоке try проверяется соответствие параметра шаблону (буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null, иначе в  другом блоке try свойство content в цикле проверяется на наличие буквы, заданной в качестве параметра. Если буква не найдена в массиве или массив пустой, «бросается» ошибка NoLetterError, в блоке catch выводится сообщение об ошибке и функция возвращает значение null. Если буква найдена, для свойства content вызывается функция splice() объекта Array, удаляющая элемент с заданным индексом из массива. Свойство length уменьшается на 1, и функция возвращает значение удаленной буквы.

Строка, содержащая список букв, вводится с помощью функции prompt() в цикле dowhile. В цикле также создается объект типа LetterArray, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта LetterArray не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  вызов метода setToString()и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteItem() для буквы, отсутствующей в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteItem() для буквы, которая есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода setToString()для измененного массива и вывод возвращаемого значения с помощью функции alert().

Вариант 10-03

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

Для объекта определены следующие ошибки:

  •  WrongWordError с именем "WrongWordError" и сообщением "Неверное значение слова" (в случае, если нарушены правила для слова);
  •  WrongLetterError с именем "WrongLetterError" и сообщением "Неверный символ" (в случае, если символ – не буква кириллицы);
  •  WrongIndexError с именем "WrongIndexError" и сообщением "Неверный индекс" (в случае, если задана неверная позиция в строке).

Параметром функции-конструктора является строка, содержащее слово.  

Свойствами объекта WordString является length (длина строки) и свойство content, содержащее саму строку.

В конструкторе в блоке try выполняется проверка параметра на соответствие следующему шаблону: первый символ строки – строчная или заглавная буква кириллицы, остальные буквы – строчные. Если параметр не соответствует шаблону, «бросается» ошибка   WrongWordError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустая строка   и выполняется возврат из функции.

Если параметр соответствует шаблону, значение длины строки присваивается свойству length, а значение строки – свойству content.

Для объекта WordString определены методы letterIndex и letterAt, реализуемые с помощью функций letterInWordIndex и letterAtIndex.

Функция letterInWordIndex для  буквы, заданной в качестве параметра, возвращает индекс ее первого появления в строке. Сначала в блоке try проверяется соответствие параметра шаблону (буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение -1. Если буква соответствует шаблону, строка (значение свойства content) просматривается по символам, и, если буква найдена, функция возвращает  индекс этой буквы в строке, иначе возвращает значение -1.

Функция letterAtIndex возвращает букву, находящуюся в заданной позиции в строке. Позиция (индекс) буквы задается в качестве параметра функции. Сначала в блоке try проверяется правильность задания индекса. Если индекс – не число, или индекс меньше 0 или индекс больше значения свойства length минус 1, «бросается» ошибка WrongIndexError, в блоке catch выводится сообщение об ошибке и возвращается значение null,  в противном случае с помощью функции charAt() объекта String возвращается буква в строке (значении свойства content), находящаяся в заданной позиции.   

Строка, содержащая слово, вводится с помощью функции prompt() в цикле dowhile. В цикле также создается объект типа WordString, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта WordString не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  вызов метода letterIndex() с неверным значением параметра;
  •  вызов метода letterIndex() для буквы, отсутствующей в строке и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода letterIndex() для буквы, которая есть в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода letterAt() для неверного значения индекса и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода letterAt() для правильного значения индекса и вывод возвращаемого значения с помощью функции alert().

Вариант 10-04

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

Для объекта определены следующие ошибки:

  •  WrongWordError с именем "WrongWordError" и сообщением "Неверное значение слова" (в случае, если нарушены правила для слова);
  •  WrongLetterError с именем "WrongLetterError" и сообщением "Неверный символ" (в случае, если символ – не буква кириллицы);
  •  WrongIndexError с именем "WrongIndexError" и сообщением "Неверный индекс" (в случае, если задана неверная позиция в строке).

Параметром функции-конструктора является строка, содержащее слово.  

Свойствами объекта WordString является length (длина строки) и свойство content, содержащее саму строку.

В конструкторе в блоке try выполняется проверка параметра на соответствие следующему шаблону: первый символ строки – строчная или заглавная буква кириллицы, остальные буквы – строчные.  

Если параметр не соответствует шаблону, «бросается» ошибка   WrongWordError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустая строка   и выполняется возврат из функции.

Если параметр соответствует шаблону, значение длины строки присваивается свойству length, а значение строки – свойству content.

Для объекта WordString определены методы hasLetter и replaceLetter, реализуемые с помощью функций hasLetterInWord и replaceLetterInWord.

Функция hasLetterInWord проверяет наличие в строке буквы, заданной в качестве параметра. Сначала в блоке try проверяется соответствие параметра шаблону (буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение false. Если буква соответствует шаблону, строка (значение свойства content) просматривается по символам, и, если буква найдена, функция возвращает  значение true, иначе возвращает значение false.

Функция replaceLetterInWord заменяет букву, находящуюся в заданной позиции в строке на заданную букву. Позиция (индекс) буквы задается в качестве первого параметра функции, буква замены – в качестве второго. Сначала в блоке try проверяется правильность задания индекса. Если индекс – не число, или индекс меньше 0 или индекс больше значения свойства length минус 1, «бросается» ошибка WrongIndexError, в блоке catch выводится сообщение об ошибке и возвращается значение null,  в противном случае в другом блоке try проверяется соответствии буквы замены шаблону (буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Если в параметрах нет ошибок, создается пустая строка, в которую в цикле добавляются символы исходной строки, однако, для заданной позиции символ в строке меняется на символ замены. Функция возвращается букву в строке, которая была заменена.  

Строка, содержащая слово, вводится с помощью функции prompt() в цикле dowhile. В цикле также создается объект типа WordString, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта WordString не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  вызов метода hasLetter() с неверным значением параметра;
  •  вызов метода hasLetter() для буквы, отсутствующей в строке и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasLetter() для буквы, которая есть в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода replaceLetter() для неверного значения индекса и буквы замены и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода replaceLetter() для правильного значения индекса и вывод возвращаемого значения с помощью функции alert();
  •  вывод с помощью функции alert()нового значения свойства content.

Вариант 10-05

Создайте сценарий в Web-странице, в котором создается пользовательский объект SortedArray (отсортированный массив, т.е. массив, содержащий числа в порядке их возрастания).

Для объекта определены следующие ошибки:

  •  WrongArrayListError с именем "WrongArrayListError" и сообщением "Неверное значение списка для массива" (в случае, если список элементов массива содержит ошибку);
  •  WrongElementError с именем "WrongElementError" и сообщением "Неверный элемент" (в случае, если элемент – не число).

Параметром функции-конструктора является строка, содержащая список элементов массива, разделенных пробелом или запятой.  

Свойствами объекта SortedArray является length (размер массива) и свойство content, содержащее сам массив.

В конструкторе в блоке try выполняется проверка параметра на соответствие следующему шаблону: либо одно число (одна или более цифр) в строке, либо число в начале строки, затем  группа из пробела или запятой и числа (группа может повторяться 0 и более раз), затем число в конце строки.  

Если параметр не соответствует шаблону, «бросается» ошибка   WrongArrayListError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции.

Если параметр соответствует шаблону, с помощью функции split() объекта String выполняется преобразование строки в массив. Значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта SortedArray определены методы hasElement и addElement, реализуемые с помощью функций hasElementInArray и addElementInArray.

Функция hasElementInArray для  числа, заданного в качестве параметра, проверяет его наличие в массиве. Сначала в блоке try проверяется соответствие параметра шаблону (число). Если параметр не соответствует шаблону, «бросается» ошибка WrongElementError, в блоке catch выводится сообщение об ошибке и возвращается значение false. Если число соответствует шаблону, массив (значение свойства content) просматривается по элементам, и, если элемент найден, функция возвращает  значение true, иначе возвращает значение false.

Функция addElementInArray добавляет элемент, заданный в качестве параметра, в массив в соответствии со значением числа (между элементом, значение которого меньше заданного числа и элементом, большим заданного числа). Сначала в блоке try проверяется правильность задания числа. Если параметр – не число, «бросается» ошибка WrongElementError. В противном случае  элемент вставляется в конец массива с помощью функции push() объекта Array, а затем массив сортируется по возрастанию  с  помощью функции sort() объекта Array. Свойство length увеличивается на 1, и функция возвращает значение добавленного числа.   

Строка, содержащая слово, вводится с помощью функции prompt() в цикле dowhile. В цикле также создается объект типа SortedArray, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта SortedArray не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  вызов метода hasElement() с неверным значением параметра;
  •  вызов метода hasElement() для числа, которого нет в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasElement() для числа, которое есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода addElement() и вывод возвращаемого значения с помощью функции alert().

Вариант 10-06

Создайте сценарий в Web-странице, в котором создается пользовательский объект SortedArray (отсортированный массив, т.е. массив, содержащий числа в порядке их возрастания).

Для объекта определены следующие ошибки:

  •  WrongArrayListError с именем "WrongArrayListError" и сообщением "Неверное значение списка для массива" (в случае, если список элементов массива содержит ошибку);
  •  WrongElementError с именем "WrongElementError" и сообщением "Неверный элемент" (в случае, если элемент – не число);
  •  NoElementError с именем " NoElementError " и сообщением "Нет элемента" (в случае, если числа нет в массиве).

Параметром функции-конструктора является строка, содержащая список элементов массива, разделенных пробелом или запятой.  

Свойствами объекта SortedArray является length (размер массива) и свойство content, содержащее сам массив.

В конструкторе в блоке try выполняется проверка параметра на соответствие следующему шаблону: либо одно число (одна или более цифр) в строке, либо число в начале строки, затем  группа из пробела или запятой и числа (группа может повторяться 0 и более раз), затем число в конце строки.  

Если параметр не соответствует шаблону, «бросается» ошибка   WrongArrayListError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции.

Если параметр соответствует шаблону, с помощью функции split() объекта String выполняется преобразование строки в массив. Значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта SortedArray определены методы arrayToString и deleteElement, реализуемые с помощью функций convertToString и deleteElementInArray.

Функция convertToString (без параметров) преобразует массив в строку и возвращает результат преобразования. В цикле элементы массива с предшествующим символом "," последовательно добавляются  к строке, первоначально состоящей из первого элемента массива.

Функция deleteElement удаляет число, заданное в качестве параметра, из массива. Сначала в блоке try проверяется соответствие параметра шаблону (число). Если параметр не соответствует шаблону, «бросается» ошибка WrongElementError, в блоке catch выводится сообщение об ошибке и возвращается значение null, иначе в  другом блоке try свойство content в цикле проверяется на наличие числа, заданного в качестве параметра. Если число не найдено в массиве или массив пустой, «бросается» ошибка NoElementError, в блоке catch выводится сообщение об ошибке и функция возвращает значение null. Если число найдено, для свойства content вызывается функция splice() объекта Array, удаляющая элемент с заданным индексом из массива. Затем массив сортируется по возрастанию  с  помощью функции sort() объекта Array. Свойство length уменьшается на 1, и функция возвращает значение удаленного числа.

Строка, содержащая слово, вводится с помощью функции prompt() в цикле dowhile. В цикле также создается объект типа SortedArray, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта SortedArray не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  вызов метода hasElement() с неверным значением параметра;
  •  вызов метода hasElement() для числа, которого нет в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasElement() для числа, которое есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteElement()для числа, которое есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteElement() для числа, которого нет в массиве, и вывод возвращаемого значения с помощью функции alert().

Вариант 10-07

Создайте сценарий в Web-странице, в котором создается пользовательский объект DigitArray (массив цифр). Для объекта определена ошибка WrongDigitError с именем "WrongDigitError" и сообщением "Неверное значение элемента" (в случае, если элемент – не цифра).

В функции-конструктора в качестве параметров задается список цифр (количество цифр в списке может быть произвольным).

Свойствами объекта DigitArray является length (количество цифр в массиве) и свойство content, содержащего сам массив цифр.

В конструкторе количество переданных в функцию параметров определяется с помощью свойства arguments.length объекта Function, а сами параметры функции хранятся в массиве arguments (оба свойства доступны внутри функции).  В блоке try выполняется в цикле проверка элементов массива  arguments на соответствие следующему шаблону: значение элемента должно быть цифрой.

Если какой-либо элемент не соответствует шаблону, «бросается» ошибка   WrongDigitError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции. В противном случае значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта DigitArray определены методы hasDigit и addDigit, реализуемые с помощью функций hasDigitItem и addDigitItem.

Функция hasDigitItem проверяет, если ли в массиве цифра, заданная в качестве параметра функции. Сначала в блоке try проверяется соответствие параметра шаблону (цифра). Если параметр не соответствует шаблону, «бросается» ошибка WrongDigitError, в блоке catch выводится сообщение об ошибке и возвращается значение false,  в противном случае в цикле просматривается элемент свойства content и, если цифра, заданная в качестве параметра, найдена в свойстве, возвращается значение true, иначе возвращается false.

Функция addDigitItem добавляет цифру, заданную в качестве параметра, в массив. Сначала в блоке try проверяется соответствие параметра шаблону (цифра). Если параметр не соответствует шаблону, «бросается» ошибка WrongDigitError, в блоке catch выводится сообщение об ошибке и возвращается значение null, иначе буква добавляется в конец массива (свойства content), свойство length увеличивается на 1 и функция возвращает значение добавленной цифры.

Далее в сценарии выполняются следующие действия:

  •  вызов конструктора метода DigitArray с произвольным числом параметров, один из которых неправильный (не цифра);
  •  вызов конструктора метода DigitArray с произвольным числом правильных параметров;
  •  вызов метода hasItem() для цифры, отсутствующей в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasItem() для цифры, которая есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода addItem() и вывод возвращаемого значения с помощью функции alert().

Вариант 10-08

Создайте сценарий в Web-странице, в котором создается пользовательский объект DigitArray (массив цифр). Для объекта определены следующие ошибки:

  •  WrongDigitError с именем "WrongDigitError" и сообщением "Неверное значение элемента" (в случае, если элемент – не цифра);
  •  NoDigitError с именем "NoDigitError" и сообщением "Нет цифры" (в случае, если заданной цифры нет в массиве).

В функции-конструкторе в качестве параметров задается список цифр (количество цифр в списке может быть произвольным).

Свойствами объекта DigitArray является length (количество цифр в массиве) и свойство content, содержащего сам массив цифр.

В конструкторе количество переданных в функцию параметров определяется с помощью свойства arguments.length объекта Function, а сами параметры функции хранятся в массиве arguments (оба свойства доступны внутри функции).  В блоке try выполняется в цикле проверка элементов массива  arguments на соответствие следующему шаблону: значение элемента должно быть цифрой.

Если какой-либо элемент не соответствует шаблону, «бросается» ошибка   WrongDigitError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции. В противном случае значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта DigitArray определены методы arrayToString и deleteDigit, реализуемые с помощью функций convertToString и deleteDigitItem.

Функция convertToString (без параметров) преобразует массив в строку и возвращает результат преобразования. В цикле элементы массива с предшествующим символом "," последовательно добавляются  к строке, первоначально состоящей из первого элемента массива.  

Функция deleteDigitItem удаляет цифру, заданную в качестве параметра, из массива. Сначала в блоке try проверяется соответствие параметра шаблону (цифра). Если параметр не соответствует шаблону, «бросается» ошибка WrongDigitError, в блоке catch выводится сообщение об ошибке и возвращается значение null, иначе в  другом блоке try свойство content в цикле проверяется на наличие цифры, заданной в качестве параметра. Если цифра не найдена в массиве или массив пустой, «бросается» ошибка NoDigitError, в блоке catch выводится сообщение об ошибке и функция возвращает значение null. Если цифра найдена, для свойства content вызывается функция splice() объекта Array, удаляющая элемент с заданным индексом из массива. Свойство length уменьшается на 1, и функция возвращает значение удаленной цифры.

Далее в сценарии выполняются следующие действия:

  •  вызов конструктора метода DigitArray с произвольным числом параметров, один из которых неправильный (не цифра);
  •  вызов конструктора метода DigitArray с произвольным числом правильных параметров;
  •  вызов метода setToString()и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteItem() для цифры, отсутствующей в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteItem() для цифры, которая есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода setToString()для измененного массива и вывод возвращаемого значения с помощью функции alert().

Вариант 10-09

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

Для объекта определены следующие ошибки:

  •  WrongBooleanError с именем "WrongBooleanError" и сообщением "Не булевское значение" (в случае, если значение не является булевским);
  •  WrongNumberError с именем "WrongNumberError" и сообщением "Неверный элемент" (в случае, если элемент – не число);
  •  WrongLengthError с именем "WrongLengthError" и сообщением "Неверный размер массива" (в случае, если задано неверное значение размера массива).

Параметрами функции-конструктора являются: значение первого элемента массива (число), значение  приращения (число) и размер массива (число, большее или равное 2).

Свойствами объекта RangeArray являются: length (размер массива), increment (приращение)  и content, содержащее сам массив.

В конструкторе в блоке try выполняется проверка всех трех параметров на соответствие шаблону (число).  

Если параметр не соответствует шаблону, «бросается» ошибка   WrongNumberError, в блоке catch выводится сообщение об ошибке, свойствам length и increment присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции.

В следующем блоке try выполняется проверка третьего параметра – количество элементов в массиве должно быть большим или равным двум.

Если параметр не соответствует шаблону, «бросается» ошибка   WrongLengthError, в блоке catch выводится сообщение об ошибке, свойствам length и increment присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции.

Если все параметры правильные, сначала создается пустой массив content, нулевой элемент для него задается равным значению первого параметра, а затем в цикле формируются остальные элементы массива в соответствии со значениями, заданными во втором и третьем параметрах. Значение второго параметра присваивается свойству  increment, а значение третьего параметра – свойству length, а сам массив – свойству content.

Для объекта RangeArray определены методы testNumber и addElement, реализуемые с помощью функций testNumberInArray и addElementInArray.

Функция testNumberInArray для  числа, заданного в качестве параметра, проверяет, к какому диапазону принадлежит число. Сначала в блоке try проверяется соответствие параметра шаблону (число). Если параметр не соответствует шаблону, «бросается» ошибка WrongNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение -1. Если число соответствует шаблону, массив (значение свойства content) просматривается по элементам, и, если число больше значения элемента i-1, но меньше или равно значению i-го элемента, функция возвращает значение i. Если число меньше значения  элемента массива с индексом 0, функция возвращается значение 0, а если число больше значения последнего элемента массива функция возвращает  значение свойства length.  

Функция addElementInArray добавляет элемент в начало или в конец массива, в зависимости от значения параметра функции (true или false). Сначала в блоке try проверяется правильность задания числа. Если параметр – не логическое значение, «бросается» ошибка WrongBooleanError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null.  В противном случае, если элемент вставляется в начало массива, значение элемента определяется вычитанием значения свойства increment от значения элемента массива с нулевым индексом, а затем элемент вставляется в массив с помощью функции unshift() объекта Array. Если элемент вставляется в конец массива, значение элемента определяется сложением значения свойства increment со значением последнего элемента массива, а затем элемент вставляется в массив массива с помощью функции push() объекта Array. Значение свойства length при этом увеличивается на 1. Функция возвращает значение добавляемого элемента.

Параметры конструктора задаются с помощью функций prompt() в цикле dowhile. В цикле также создается объект типа RangeArray, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта RangeArray не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  создание экземпляра объекта RangeArray с неправильным значением одного из параметров;
  •  создание экземпляра объекта RangeArray с правильными значениями параметров;
  •  вызов метода testNumber() с неверным значением параметра;
  •  вызов метода testNumber() для произвольного числа  и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода addElement() для неверного значения параметра;
  •  вызов метода addElement() со значением параметра true или false и вывод возвращаемого значения с помощью функции alert().

Вариант 10-10

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

Для объекта определены следующие ошибки:

  •  WrongBooleanError с именем "WrongBooleanError" и сообщением "Не булевское значение" (в случае, если значение не является булевским);
  •  WrongNumberError с именем "WrongNumberError" и сообщением "Неверный элемент" (в случае, если элемент – не число);
  •  EmptyArrayError с именем "EmptyArrayError" и сообщением "Пустой массив" (в случае, если в массиве нет ни одного элемента);
  •  WrongLengthError с именем "WrongLengthError" и сообщением "Неверный размер массива" (в случае, если задано неверное значение размера массива).

Параметрами функции-конструктора являются: значение первого элемента массива (число), значение  приращения (число) и размер массива (число, большее или равное 2).

Свойствами объекта RangeArray являются: length (размер массива), increment (приращение)  и content, содержащее сам массив.

В конструкторе в блоке try выполняется проверка всех трех параметров на соответствие шаблону (число).  

Если параметр не соответствует шаблону, «бросается» ошибка   WrongNumberError, в блоке catch выводится сообщение об ошибке, свойствам length и increment присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции.

В следующем блоке try выполняется проверка третьего параметра – количество элементов в массиве должно быть большим или равным двум.

Если параметр не соответствует шаблону, «бросается» ошибка   WrongLengthError, в блоке catch выводится сообщение об ошибке, свойствам length и increment присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции.

Если все параметры правильные, сначала создается пустой массив content, нулевой элемент для него задается равным значению первого параметра, а затем в цикле формируются остальные элементы массива в соответствии со значениями, заданными во втором и третьем параметрах. Значение второго параметра присваивается свойству  increment, а значение третьего параметра – свойству length, а сам массив – свойству content.

Для объекта RangeArray определены методы arrayToString и deleteElement, реализуемые с помощью функций convertToString и deleteElementInArray.

Функция convertToString (без параметров) преобразует массив в строку и возвращает результат преобразования. В цикле элементы массива с предшествующим символом "," последовательно добавляются  к строке, первоначально состоящей из первого элемента массива.  

Функция deleteElementInArray удаляет элемент из начала или конца массива, в зависимости от значения параметра функции (true или false). Сначала в блоке try проверяется правильность задания числа. Если параметр – не логическое значение, «бросается» ошибка WrongBooleanError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. Затем в другом блоке try проверяется размер массива (значение свойства length). Если оно равно 0, «бросается» ошибка EmptyArrayError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В случае отсутствия ошибок, если элемент удаляется из начала массива, используется функция shift() объекта Array. Если элемент удаляется из конца,  используется функция pop() объекта Array. Значение свойства length при этом уменьшается на 1. Функция возвращает значение удаляемого элемента.

Параметры конструктора задаются с помощью функций prompt() в цикле dowhile. В цикле также создается объект типа RangeArray, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта RangeArray не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  создание экземпляра объекта RangeArray с неправильным значением одного из параметров;
  •  создание экземпляра объекта RangeArray с правильными значениями параметров;
  •  вызов метода arrayToString() для массива и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteElement() с неверным значением параметра;
  •  вызов метода deleteElement() для произвольного числа  и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода arrayToString() для нового массива и вывод возвращаемого значения с помощью функции alert().

Вариант 10-11

Создайте сценарий в Web-странице, в котором создается пользовательский объект DictionaryArray (отсортированный массив слов, т.е. массив, содержащий строки в порядке возрастания их кодов). Элементами массива являются строчные буквы кириллицы. Для объекта определена ошибка WrongWordError с именем "WrongWordError" и сообщением "Неверный элемент" (в случае, если элемент – не число).

В функции-конструкторе в качестве параметров задается список строк (количество строк в списке может быть произвольным).

Свойствами объекта DictionaryArray является length (количество строк в массиве) и свойство content, содержащего сам массив строк.

В конструкторе количество переданных в функцию параметров определяется с помощью свойства arguments.length объекта Function, а сами параметры функции хранятся в массиве arguments (оба свойства доступны внутри функции).  В блоке try выполняется в цикле проверка элементов массива  arguments на соответствие следующему шаблону: значение элемента должно быть последовательностью из одной или более строчных букв кириллицы.

Если какой-либо элемент не соответствует шаблону, «бросается» ошибка   WrongWordError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции. В противном случае значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта DictionaryArray определены методы searchWord и addWord, реализуемые с помощью функций searchWordInArray и addWordInArray.

Функция searchWordInArray для  слова, заданного в качестве параметра, проверяет его наличие в массиве. Сначала в блоке try проверяется соответствие параметра шаблону (строка строчных букв кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongWordError, в блоке catch выводится сообщение об ошибке и возвращается значение false. Если слово соответствует шаблону, массив (значение свойства content) просматривается по элементам, и, если элемент найден, функция возвращает  значение true, иначе возвращает значение false.

Функция addWordInArray добавляет слово, заданное в качестве параметра, в массив в соответствии со значением слова (между элементом коды которого меньше заданного слова и элементом, коды которого равны или больше кодов заданного слова). Сначала в блоке try проверяется правильность задания слова. Если параметр – не слово, «бросается» ошибка WrongWordError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В противном случае  элемент вставляется в конец массива с помощью функции push() объекта Array, а затем массив сортируется по возрастанию  с  помощью функции sort() объекта Array. Значение свойства length при этом увеличивается на 1.  Функция возвращает значение добавленного слова.  

Далее в сценарии выполняются следующие действия:

  •  создание экземпляра объекта DictionaryArray с произвольным количеством параметров, один из которых неверный;
  •  создание экземпляра объекта DictionaryArray с произвольным количеством правильных параметров;
  •  вызов метода searchWord() с неверным значением параметра;
  •  вызов метода searchWord() для слова, которого нет в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода searchWord() для слова, которое есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода addWord() и вывод возвращаемого значения с помощью функции alert().

Вариант 10-12

Создайте сценарий в Web-странице, в котором создается пользовательский объект DictionaryArray (отсортированный массив слов, т.е. массив, содержащий строки в порядке возрастания их кодов). Элементами массива являются строчные буквы кириллицы. Для объекта определены следующие ошибки:

  •  WrongWordError с именем "WrongWordError" и сообщением "Неверный элемент" (в случае, если элемент – неверное слово);
  •  NoWordError с именем "NoWordError" и сообщением "Нет элемента" (в случае, если слово не найдено в массиве);
  •  EmptyArrayError с именем "EmptyArrayError" и сообщением "Пустой массив" (в случае, если в массиве нет ни одного элемента).

В функции-конструкторе в качестве параметров задается список строк (количество строк в списке может быть произвольным).

Свойствами объекта DictionaryArray является length (количество строк в массиве) и свойство content, содержащего сам массив строк.

В конструкторе количество переданных в функцию параметров определяется с помощью свойства arguments.length объекта Function, а сами параметры функции хранятся в массиве arguments (оба свойства доступны внутри функции).  В блоке try выполняется в цикле проверка элементов массива  arguments на соответствие следующему шаблону: значение элемента должно быть последовательностью из одной или более строчных букв кириллицы.

Если какой-либо элемент не соответствует шаблону, «бросается» ошибка   WrongWordError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции. В противном случае значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта DictionaryArray определены методы arrayToString и deleteWord, реализуемые с помощью функций convertToString и deleteWordInArray.

Функция convertToString (без параметров) преобразует массив в строку и возвращает результат преобразования. В цикле элементы массива с предшествующим символом "," последовательно добавляются  к строке, первоначально состоящей из первого элемента массива.

Функция deleteWordInArray удаляет слово, заданное в качестве параметра, из массива и заново сортирует элементы массива. Сначала в блоке try проверяется правильность задания слова. Если параметр – не слово, «бросается» ошибка WrongWordError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null.  Затем в другом блоке try проверяется размер массива (значение свойства length). Если оно равно 0, «бросается» ошибка EmptyArrayError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В третьем блоке try в цикле проверяется наличие слова в массиве. Если слово не найдено,  «бросается» ошибка NoWordError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В противном случае  элемент (по найденному в третьем блоке try индексу) удаляется из массива с помощью функции splice() объекта Array, а затем массив сортируется по возрастанию  с  помощью функции sort() объекта Array. Значение свойства length при этом уменьшается на 1. Функция возвращает значение удаленного слова.  

Далее в сценарии выполняются следующие действия:

  •  создание экземпляра объекта DictionaryArray с произвольным количеством параметров, один из которых неверный;
  •  создание экземпляра объекта DictionaryArray с произвольным количеством правильных параметров;
  •  вызов метода arrayToString() для созданного массива, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteWord() для слова, которого нет в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteWord() для слова, которое есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода arrayToString() для нового массива, и вывод возвращаемого значения с помощью функции alert().

Вариант 10-13

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

  •  WrongBinaryError с именем "WrongBinaryError" и сообщением "Неверное значение элемента" (в случае, если элемент – не двоичное число);
  •  WrongBinaryListError с именем "WrongBinaryListError" и сообщением "Неверный список элементов" (в случае, если задан неверный список элементов массива).

В функции-конструкторе в качестве параметров задается список чисел (количество чисел в списке может быть произвольным).

Свойствами объекта BinaryArray является length (количество чисел в массиве) и свойство content, содержащего сам массив двоичных чисел.

В конструкторе количество переданных в функцию параметров определяется с помощью свойства arguments.length объекта Function, а сами параметры функции хранятся в массиве arguments (оба свойства доступны внутри функции).  В блоке try выполняется в цикле проверка элементов массива  arguments на соответствие следующему шаблону: значение элемента должно быть последовательностью нулей и единиц.

Если какой-либо элемент не соответствует шаблону, «бросается» ошибка   WrongBinaryError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции. В противном случае значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта BinaryArray определены методы searchBinary и addBinary, реализуемые с помощью функций searchBinaryItem и addBinaryItem.

Функция searchBinaryItem проверяет, если ли в массиве двоичное число, заданное в качестве параметра функции. Сначала в блоке try проверяется соответствии параметра шаблону (двоичное число). Если параметр не соответствует шаблону, «бросается» ошибка WrongBinaryError, в блоке catch выводится сообщение об ошибке и возвращается значение -1,  в противном случае в цикле просматривается элемент свойства content и, если число, заданное в качестве параметра, найдено в свойстве, возвращается значение индекса этого числа, иначе возвращается -1.

Функция addBinaryItem добавляет число, заданное в качестве параметра, в массив. Сначала в блоке try проверяется соответствие параметра шаблону (двоичное число). Если параметр не соответствует шаблону, «бросается» ошибка WrongBinaryError, в блоке catch выводится сообщение об ошибке и возвращается значение null, иначе число добавляется в конец массива (свойства content), свойство length увеличивается на 1 и функция возвращает значение добавленной цифры.

Далее в сценарии выполняются следующие действия:

  •  вызов конструктора метода BinaryArray с произвольным числом параметров, один из которых неправильный (не цифра);
  •  вызов конструктора метода BinaryArray с произвольным числом правильных параметров;
  •  вызов метода searchBinary() для числа, отсутствующего в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода searchBinary() для числа, которое есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода addBinary() и вывод возвращаемого значения с помощью функции alert().

Вариант 10-14

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

  •  WrongBinaryError с именем "WrongBinaryError" и сообщением "Неверное значение элемента" (в случае, если элемент – не двоичное число);
  •  EmptyArrayError с именем "EmptyArrayError" и сообщением "Пустой массив" (в случае, если в массиве нет ни одного элемента);
  •  NoBinaryError с именем "NoBinaryError" и сообщением "Нет элемента" (в случае, если задан неверный список элементов массива).

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

Свойствами объекта BinaryArray является length (количество чисел в массиве) и свойство content, содержащего сам массив двоичных чисел.

В конструкторе количество переданных в функцию параметров определяется с помощью свойства arguments.length объекта Function, а сами параметры функции хранятся в массиве arguments (оба свойства доступны внутри функции).  В блоке try выполняется в цикле проверка элементов массива  arguments на соответствие следующему шаблону: значение элемента должно быть последовательностью нулей и единиц.

Если какой-либо элемент не соответствует шаблону, «бросается» ошибка   WrongBinaryError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции. В противном случае значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта BinaryArray определены методы replaceBinary и deleteBinary, реализуемые с помощью функций replaceBinaryItem и deleteBinaryItem.

Функция replaceBinaryItem заменяет число заданное в первом параметре, на число, заданное во втором параметре. Сначала в блоке try проверяется соответствии параметра шаблону (двоичное число). Если хотя бы один из параметров не соответствует шаблону, «бросается» ошибка WrongBinaryError, в блоке catch выводится сообщение об ошибке и возвращается значение null,  иначе в другом блоке try проверяется в цикле наличие в массиве (свойстве content) значения, заданного в первом параметре. Если значение не найдено, «бросается» ошибка NoBinaryError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Если ошибок не обнаружено, для свойства content вызывается функция splice() объекта Array, заменяющая элемент с найденным во втором блоку try индексом в массиве.

Функция deleteBinaryItem удаляет число, заданное в качестве параметра, из массива. Сначала в блоке try проверяется соответствие параметра шаблону (двоичное число). Если параметр не соответствует шаблону, «бросается» ошибка WrongBinaryError. Затем в другом блоке try проверяется размер массива (значение свойства length). Если оно равно 0, «бросается» ошибка EmptyArrayError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В следующем блоке try свойство content в цикле проверяется на наличие числа, заданного в качестве параметра. Если число не найдено в массиве, «бросается» ошибка NoBinaryError, в блоке catch выводится сообщение об ошибке и функция возвращает значение null. Если число найдено, для свойства content вызывается функция splice() объекта Array, удаляющая элемент с найденным в третьем блоке try индексом из массива. Свойство length уменьшается на 1, и функция возвращает значение удаленного числа.

Далее в сценарии выполняются следующие действия:

  •  вызов конструктора метода BinaryArray с произвольным числом параметров, один из которых неправильный (не цифра);
  •  вызов конструктора метода BinaryArray с произвольным числом правильных параметров;
  •  вызов метода replaceBinary() для числа, отсутствующего в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода replaceBinary() для числа, которое есть в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteBinary() для числа, отсутствующего в массиве, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteBinary() для числа, которое есть в массиве, и вывод возвращаемого значения с помощью функции alert().

Вариант 10-15

Создайте сценарий в Web-странице, в котором создается пользовательский объект QueueArray (массив чисел, имитирующий очередь). Для объекта определена ошибка WrongNumberError с именем "WrongNumberError" и сообщением "Неверный элемент" (в случае, если элемент – не целое число).

Функция-конструктор не имеет параметров.

Свойствами объекта QueueArray является length (количество чисел в массиве) и свойство content, содержащего сам массив чисел. В конструкторе создается пустой массив (пустая очередь).

Для объекта QueueArray определены методы searchNumber и addNumber, реализуемые с помощью функций searchNumberInArray и addNumberInArray.

Функция searchNumberInArray для  числа, заданного в качестве параметра, проверяет его наличие в очереди. Сначала в блоке try проверяется соответствие параметра шаблону (целое число). Если параметр не соответствует шаблону, «бросается» ошибка WrongNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение false. Если параметр соответствует шаблону, массив (значение свойства content) просматривается в цикле по элементам, и, если элемент найден, функция возвращает  значение true, иначе возвращает значение false.

Функция addNumberInArray добавляет число, заданное в качестве параметра, в массив. Сначала в блоке try проверяется правильность задания числа. Если параметр – не число, «бросается» ошибка WrongNumberError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В противном случае  элемент вставляется в конец массива с помощью функции push() объекта Array. Значение свойства length при этом увеличивается на 1.  Функция возвращает значение добавленного числа.  

Далее в сценарии выполняются следующие действия:

  •  создание экземпляра объекта QueueArray;
  •  вызов метода searchWord() с неверным значением параметра;
  •  вызов метода addNumber() для неверного значения параметра;
  •  вызов нескольких методов addNumber() для заполнения очереди, и вывод возвращаемых значений с помощью функции alert().

Вариант 10-16

Создайте сценарий в Web-странице, в котором создается пользовательский объект QueueArray (массив чисел, имитирующий очередь). Для объекта определены следующие ошибки:

  •  WrongNumberError с именем "WrongNumberError" и сообщением "Неверный элемент" (в случае, если элемент – не целое число);
  •  EmptyArrayError с именем "EmptyArrayError" и сообщением "Пустой массив" (в случае, если в массиве нет ни одного элемента).

Функция-конструктор не имеет параметров.

Свойствами объекта QueueArray является length (количество чисел в массиве) и свойство content, содержащего сам массив чисел. В конструкторе создается пустой массив (пустая очередь).

Для объекта QueueArray определены методы arrayToString, addNumber и getNumber, реализуемые с помощью функций convertToString, addNumberInArray и getNumberInArray.

Функция convertToString (без параметров) преобразует массив в строку и возвращает результат преобразования. В цикле элементы массива с предшествующим символом "," последовательно добавляются  к строке, первоначально состоящей из первого элемента массива.

Функция addNumberInArray добавляет число, заданное в качестве параметра, в массив. Сначала в блоке try проверяется правильность задания числа. Если параметр – не число, «бросается» ошибка WrongNumberError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В противном случае  элемент вставляется в конец массива с помощью функции push() объекта Array. Значение свойства length при этом увеличивается на 1.  Функция возвращает значение добавленного числа.

Функция getNumberInArray (без параметров) удаляет первый элемент из очереди. В блоке try проверяется размер массива (значение свойства length). Если оно равно 0, «бросается» ошибка EmptyArrayError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В противном случае с помощью функции shift() объекта Array первый элемент удаляется из очереди. Значение свойства length при этом уменьшается на 1. Функция возвращает значение удаленного числа.

Далее в сценарии выполняются следующие действия:

  •  создание экземпляра объекта QueueArray;
  •  вызов нескольких методов addNumber() для заполнения очереди, и вывод возвращаемых значений с помощью функции alert();
  •  вызов метода arrayToString() и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода getNumber() и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода arrayToString() и вывод возвращаемого значения с помощью функции alert();

Вариант 10-17

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

  •  WrongArrayLengthError с именем "WrongArrayLengthError" и сообщением "Неверный размер массива" (в случае, если задано неверное значение размера массива);
  •  NoNumberError с именем "NoNumberError" и сообщением "Нет числа" (в случае, если случайного числа не существует).

Параметром функции-конструктора является количество случайных чисел в создаваемом массиве.  

Свойствами объекта RandomArray является length (количество чисел в массиве), свойство index, содержащее индекс текущего случайного числа в массиве и свойство content, содержащего сам массив чисел.

Сначала в блоке try проверяется правильность задания параметра конструктора. Если параметр не соответствует шаблону (число), или параметр меньше двух, «бросается» ошибка WrongArrayLengthError, а затем в блоке catch выводится сообщение об ошибке и выполнение функции завершается.

В противном случае в конструкторе создается свойство content – массив с заданным в параметре размером, а затем элементы этого массива в цикле заполняются случайными числами с использованием  функции random() объекта Math. Свойству length объекта присваивается значение параметра конструктора, а свойству index – значение -1.

Для объекта RandomArray определены методы hasNext и getNext, реализуемые с помощью функций hasNextNumber и getNextNumber.

Функция hasNextNumber (без параметров) проверяет, есть ли следующее случайное число в массиве. Если текущее значение свойства index равно значению свойства length минус 1, функция возвращает значение false, в противном случае – значение true.  

Функция getNextNumber (без параметров) получает следующее случайное число в массиве. Сначала в блоке try проверяется значение свойства index объекта. Если это значение равно значению свойства length минус 1, «бросается» ошибка NoNumberError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В противном случае  значение свойства index увеличивается на 1, и функция возвращает элемент массива content с индексом, равным значению свойства index.  

Далее в сценарии выполняются следующие действия:

  •  создание экземпляра объекта RandomArray с количеством случайных чисел, равным 3;
  •  вызов два раза метода getNext()и вывод возвращаемых значений с помощью функции alert();
  •  вызов метода hasNext()и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода getNext()и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasNext()и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода getNext()и вывод возвращаемого значения с помощью функции alert().

Вариант 10-18

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

  •  WrongArrayLengthError с именем "WrongArrayLengthError" и сообщением "Неверный размер массива" (в случае, если задано неверное значение размера массива);
  •  NoNumberError с именем "NoNumberError" и сообщением "Нет числа" (в случае, если случайного числа не существует).

Параметром функции-конструктора является количество случайных чисел в создаваемом массиве.  

Свойствами объекта RandomArray является length (количество чисел в массиве), свойство index, содержащее индекс текущего случайного числа в массиве и свойство content, содержащего сам массив чисел.

Сначала в блоке try проверяется правильность задания параметра конструктора. Если параметр не соответствует шаблону (число), или параметр меньше двух, «бросается» ошибка WrongArrayLengthError, а затем в блоке catch выводится сообщение об ошибке и выполнение функции завершается.

В противном случае в конструкторе создается свойство content – массив с заданным в параметре размером, а затем элементы этого массива в цикле заполняются случайными числами с использованием  функции random() объекта Math. Свойству length объекта присваивается значение параметра конструктора, а свойству index – значение length.

Для объекта RandomArray определены методы hasPrevious и getPrevious, реализуемые с помощью функций hasPreviousNumber и getPreviousNumber.

Функция hasPreviousNumber (без параметров) проверяет, есть ли предыдущее случайное число в массиве. Если текущее значение свойства index равно 0,  функция возвращает значение false, в противном случае – значение true.  

Функция getPreviousNumber (без параметров) получает предыдущее случайное число в массиве. Сначала в блоке try проверяется значение свойства index объекта. Если это значение равно 0, «бросается» ошибка NoNumberError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В противном случае  значение свойства index уменьшается на 1, и функция возвращает элемент массива content с индексом, равным значению свойства index.  

Далее в сценарии выполняются следующие действия:

  •  создание экземпляра объекта RandomArray с количеством случайных чисел, равным 3;
  •  вызов два раза метода getPrevious()и вывод возвращаемых значений с помощью функции alert();
  •  вызов метода hasPrevious()и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода getNext()и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasPrevious()и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода getPrevious()и вывод возвращаемого значения с помощью функции alert().

Вариант 10-19

Создайте сценарий в Web-странице, в котором создается пользовательский объект WordArray (массив слов). Элементами массива являются буквы кириллицы.

  •  WrongWordError с именем "WrongWordError" и сообщением "Неверный размер массива" (в случае, если элемент – не слово);
  •  WrongLetterError с именем "WrongLetterError" и сообщением "Неверный символ" (в случае, если символ – не буква кириллицы);
  •  WrongIndexError с именем "WrongIndexError" и сообщением "Неверный символ" (в случае, если число – неверный индекс массива).

В функции-конструкторе в качестве параметров задается список строк (количество строк в списке может быть произвольным).

Свойствами объекта WordArray является length (количество строк в массиве) и свойство content, содержащего сам массив строк.

В конструкторе количество переданных в функцию параметров определяется с помощью свойства arguments.length объекта Function, а сами параметры функции хранятся в массиве arguments (оба свойства доступны внутри функции).  В блоке try выполняется в цикле проверка элементов массива  arguments на соответствие следующему шаблону: значение элемента – слово должно быть последовательностью из одной или более заглавных или строчных букв кириллицы.

Если какой-либо элемент не соответствует шаблону, «бросается» ошибка   WrongWordError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции. В противном случае значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта WordArray в функции-конструкторе определены методы searchStartOf и replaceWord, реализуемые с помощью функций searchStartOfInArray и replaceWordInArray.

Функция searchStartOfInArray  для  буквы, заданной в качестве параметра, возвращает массив слов, начинающихся с заданной в параметре буквы. Сначала в блоке try проверяется соответствие параметра шаблону (строчная или прописная буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Если буква соответствует шаблону, создается пустой массив, затем массив слов (значение свойства content) просматривается в цикле по элементам, и, если элемент, начинающийся с заданной буквы (с помощью функции charAt() объекта String), найден, этот элемент добавляется к созданному массиву. После окончания   цикла функция возвращает созданный массив.

Функция replaceWordInArray заменяет слово, заданное в качестве второго параметра, в позиции (индексе), заданном в первом параметре.  Сначала в блоке try проверяется соответствие первого параметра шаблону (число), и затем правильность задания индекса (должен быть в диапазоне от 0 до значения length минус 1). Если первый параметр  неверен, «бросается» ошибка WrongIndexError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В следующем блоке try проверяется правильность задания второго параметра (параметр должен быть словом). Если параметр – не слово, «бросается» ошибка WrongWordError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В противном случае  элемент  с заданным индексом получает новое значение.  Функция возвращает значение замененного слова.  

Далее в сценарии выполняются следующие действия:

  •  создание экземпляра объекта WordArray с произвольным количеством параметров, один из которых неверный;
  •  создание экземпляра объекта WordArray с произвольным количеством правильных параметров;
  •  вызов метода searchStartOf() с неверным значением параметра;
  •  вызов метода searchStartOf() для заданной в параметре буквы, и вывод возвращаемого значения (в цикле по элементам полученного массива) с помощью функции alert();
  •  вызов метода replaceWord() с неверным значением индекса;
  •  вызов метода replaceWord() и вывод возвращаемого значения с помощью функции alert().

Вариант 10-20

Создайте сценарий в Web-странице, в котором создается пользовательский объект WordArray (массив слов). Элементами массива являются буквы кириллицы.

  •  WrongWordError с именем "WrongWordError" и сообщением "Неверный размер массива" (в случае, если элемент – не слово);
  •  EmptyArrayError с именем "EmptyArrayError" и сообщением "Пустая очередь" (в случае, если массив элементов – пустой);
  •  WrongLetterError с именем "WrongLetterError" и сообщением "Неверный символ" (в случае, если символ – не буква кириллицы).

В функции-конструкторе в качестве параметров задается список строк (количество строк в списке может быть произвольным).

Свойствами объекта WordArray является length (количество строк в массиве) и свойство content, содержащего сам массив строк.

В конструкторе количество переданных в функцию параметров определяется с помощью свойства arguments.length объекта Function, а сами параметры функции хранятся в массиве arguments (оба свойства доступны внутри функции).  В блоке try выполняется в цикле проверка элементов массива  arguments на соответствие следующему шаблону: значение элемента должно быть последовательностью из одной или более заглавных или строчных букв кириллицы.

Если какой-либо элемент не соответствует шаблону, «бросается» ошибка   WrongWordError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции. В противном случае значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта WordArray определены методы addWord и  deleteWord, реализуемые с помощью функций addWordInArray и deleteWordInArray.

Функция addWordInArray добавляет слово, заданное в качестве параметра, в массив в соответствии со значением слова.  Если параметр – не слово, «бросается» ошибка WrongWordError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В противном случае  элемент вставляется в конец массива с помощью функции push() объекта Array. Значение свойства length при этом увеличивается на 1.  Функция возвращает значение добавленного слова.

Функция deleteWordInArray удаляет слово, заданное в качестве параметра, из массива по заданной позиции (индексу) слова.  В блоке try проверяется размер массива (значение свойства length). Если оно равно 0, «бросается» ошибка EmptyArrayError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. Затем в блоке try проверяется соответствие параметра шаблону (число) и правильность задания индекса (должен быть в диапазоне от 0 до значения length минус 1). Если параметр  неверен, «бросается» ошибка WrongIndexError, а затем в блоке catch выводится сообщение об ошибке и функция возвращает значение null. В противном случае  элемент удаляется массива с помощью функции splice() объекта Array. Значение свойства length при этом уменьшается на 1.  Функция возвращает значение удаленного слова.  

Далее в сценарии выполняются следующие действия:

  •  создание экземпляра объекта WordArray с произвольным количеством параметров, один из которых неверный;
  •  создание экземпляра объекта WordArray с произвольным количеством правильных параметров;
  •  вызов метода addWord() с неверным значением параметра;
  •  вызов метода addWord() с правильным значением параметра, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteWord() с неверным значением параметра;
  •  вызов метода deleteWord()с правильным значением параметра, и вывод возвращаемого значения с помощью функции alert().

Вариант 10-21

Создайте сценарий в Web-странице, в котором создается пользовательский объект StackArray (массив чисел, имитирующий стековую очередь). Для объекта определены следующие ошибки:

  •  WrongNumberError с именем "WrongNumberError" и сообщением "Неверное значение элемента" (в случае, если элемент – не число);
  •  WrongNumberListError с именем "WrongNumberListError" и сообщением "Неверный список элементов" (в случае, если задан неверный список элементов массива).

Параметром функции-конструктора является строка – список чисел, отделенных друг от друга пробелом или запятой.

Свойствами объекта StackArray является length (количество элементов в массиве) и свойство content, содержащего сам массив элементов.

В конструкторе в блоке try выполняется проверка параметра на соответствие следующему шаблону: либо одно число в строке, либо число в начале строки, затем  группа из пробела или запятой и числа (группа может повторяться 0 и более раз), затем число в конце строки.

Если параметр не соответствует шаблону, «бросается» ошибка   WrongNumberListError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции.

Если параметр соответствует шаблону, с помощью функции split() объекта String выполняется преобразование строки в массив. Значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта StackArray определены методы hasNumber и putNumber, реализуемые с помощью функций hasNumberItem и putNumberItem.

Функция hasNumberItem проверяет, если ли в массиве число, заданное в качестве параметра функции. Сначала в блоке try проверяется соответствии параметра шаблону (число). Если параметр не соответствует шаблону, «бросается» ошибка WrongNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение false,  в противном случае в цикле просматривается элемент свойства content и, если число, заданное в качестве параметра, найдено в свойстве, возвращается значение true, иначе возвращается false.

Функция putNumberItem вставляет число, заданное в качестве параметра, в очередь. Сначала в блоке try проверяется соответствие параметра шаблону (число). Если параметр не соответствует шаблону, «бросается» ошибка WrongNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение null, иначе число добавляется в начало очереди (свойства content) с помощью функции unshift() объекта Array, свойство length увеличивается на 1 и функция возвращает значение добавленного числа.

Строка, содержащая список чисел, вводится с помощью функции prompt() в цикле dowhile. В цикле также создается объект типа StackArray, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта StackArray не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  вызов метода hasNumber() с неверным значением параметра;
  •  вызов метода hasNumber() для числа, отсутствующего в очереди, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasNumber() для числа, которое есть в очереди, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода putNumber() и вывод возвращаемого значения с помощью функции alert().

Вариант 10-22

Создайте сценарий в Web-странице, в котором создается пользовательский объект StackArray (массив чисел, имитирующий стековую очередь). Для объекта определены следующие ошибки:

  •  WrongNumberError с именем "WrongNumberError" и сообщением "Неверное значение элемента" (в случае, если элемент – не число);
  •  EmptyStackError с именем "EmptyStackError" и сообщением "Пустая очередь" (в случае, если массив элементов – пустой);
  •  NoNumberError с именем "NoNumberError" и сообщением "Нет элемента" (в случае, если элемент не найден в очереди).

Параметром функции-конструктора является строка – список чисел, отделенных друг от друга пробелом или запятой.

Свойствами объекта StackArray является length (количество элементов в массиве) и свойство content, содержащего сам массив элементов.

В конструкторе в блоке try выполняется проверка параметра на соответствие следующему шаблону: либо одно число в строке, либо число в начале строки, затем  группа из пробела или запятой и числа (группа может повторяться 0 и более раз), затем число в конце строки.

Если параметр не соответствует шаблону, «бросается» ошибка   WrongNumberListError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустой массив   и выполняется возврат из функции.

Если параметр соответствует шаблону, с помощью функции split() объекта String выполняется преобразование строки в массив. Значение размера массива присваивается свойству length, а сам массив – свойству content.

Для объекта StackArray определены методы getNumber и replaceNumber, реализуемые с помощью функций getNumberItem и replaceNumberItem.

Функция getNumberItem (без параметров) извлекает число из очереди. Сначала в блоке try проверяется значение свойства length. Если оно равно 0, «бросается» ошибка EmptyStackError, в блоке catch выводится сообщение об ошибке и возвращается значение null,  в противном случае из начала очереди (свойства content) с помощью функции shift() объекта Array удаляется элемент. Свойство length уменьшается на 1, и функция возвращает значение удаленного числа.  

Функция replaceNumberItem заменяет заданное в качестве первого параметра число на число, заданное во втором параметре. Сначала в блоке try проверяется соответствие первого и второго параметра шаблону (число). Если хотя бы один из параметров не соответствует шаблону, «бросается» ошибка WrongNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение null, иначе в другом блоке try в цикле проверяется наличие элемента в очереди (свойстве content) со значением, заданным в первом параметре. Если параметр не найден в очереди, «бросается» ошибка NoNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение null, иначе число в найденной позиции заменяется значением, заданным во втором параметре.  Функция возвращает значение замененного числа.

Строка, содержащая список из двух чисел, вводится с помощью функции prompt() в цикле dowhile. В цикле также создается объект типа StackArray, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта StackArray не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  вызов метода replaceNumber() с нечисловым значением параметра;
  •  вызов метода replaceNumber() со значением первого параметра, которое отсутствует в списке;
  •  вызов метода replaceNumber() с правильными значениями параметров, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasNumber() для числа, которое есть в очереди, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода getNumber() и вывод возвращаемого значения с помощью функции alert() до тех пор, пока не будет выведена ошибка EmptyStackError.

Вариант 10-23

Создайте сценарий в Web-странице, в котором создается пользовательский объект DirectoryArray (телефонный справочник). Для объекта определены следующие ошибки:

  •  WrongNumberError с именем "WrongNumberError" и сообщением "Неверный номер" (в случае, если элемент – не номер телефона);
  •  WrongNameError с именем "WrongNameError" и сообщением "Неверное имя" (в случае, если имя задано неверно);
  •  DuplicateNumberError с именем "DuplicateNumberError" и сообщением "Дубликат номера" (в случае, если номер телефона уже есть в списке);
  •  NoNumberError с именем "NoNumberError" и сообщением "Нет телефона" (в случае, если номера телефона нет в списке).

В функции-конструкторе задаются два параметра – номер телефона и имя пользователя.

Свойствами объекта DirectoryArray является length (количество элементов в справочнике), а также свойства telephone  и name, содержащие соответственно массивы номеров телефонов и имен пользователей.

В первом блоке try выполняется следующая проверка: если первый параметр не соответствует шаблону (три цифры, тире, три цифры, тире, две цифры, тире, две цифры), «бросается» ошибка   WrongNumberError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойствам telephone  и name – пустые массивы   и выполняется возврат из функции.

Затем в другом блоке try выполняется следующая проверка: если второй параметр не соответствует шаблону (последовательность букв кириллицы, первая из которых заглавная, а остальные строчные), «бросается» ошибка   WrongNameError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойствам telephone  и name – пустые массивы   и выполняется возврат из функции.

Если ошибок нет, в конструкторе свойству length присваивается значение 1, а свойства telephone и name задаются как массивы, содержащие по одному элементу – соответственно номер телефона и имя пользователя.

Для объекта DirectoryArray определены методы addNumber и hasNumber, реализуемые с помощью функций addNumberItem и hasNumberItem.

Функция addNumberItem добавляет пользователя в телефонный справочник. Первым параметром функции является номер телефона, вторым – имя пользователя. Проверка правильности задания параметров выполняется так же, как в функции-конструкторе, но после вывода сообщения об ошибке функция возвращает значение null. Кроме этого, в третьем блоке  try в цикле проверяется наличие телефона (значения первого параметра) в массиве телефонов (свойстве telephone). Если телефон уже есть в списке, «бросается» ошибка DuplicateNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение null,  в противном случае в конец массива telephone добавляется элемент для нового номера телефона, а в конец массива name – элемент для нового имени. После этого значение свойства length увеличивается на 1, и функция возвращает значение добавленного номера телефона.   

Функция hasNumberItem проверяет, есть ли телефон в списке и, если он есть выдает имя пользователя для этого телефона. В качестве параметра функции задается номер телефона.   Сначала в блоке try проверяется соответствие параметра шаблону (номер телефона). Если параметр не соответствует шаблону, «бросается» ошибка WrongNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение false.  В противном случае в следующем блоке  try в цикле просматриваются элементы свойства telephone и, если телефон не найден в свойстве, «бросается» ошибка NoNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Если телефон найден в свойстве, функция возвращает значение элемента свойства name с найденным индексом телефона.

Далее в сценарии выполняются следующие действия:

  •  создание объекта DirectoryArray() с неверным значением параметра;
  •  создание объекта DirectoryArray() с  правильными значениями параметров;
  •  вызов метода addNumber() с правильными значениями параметров,  и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasNumber()с неверным значением параметра;
  •  вызов метода hasNumber() с правильным значением параметра, и вывод возвращаемого значения с помощью функции alert().

Вариант 10-24

Создайте сценарий в Web-странице, в котором создается пользовательский объект DirectoryArray (телефонный справочник). Для объекта определены следующие ошибки:

  •  WrongNumberError с именем "WrongNumberError" и сообщением "Неверный номер" (в случае, если элемент – не номер телефона);
  •  WrongNameError с именем "WrongNameError" и сообщением "Неверное имя" (в случае, если имя задано неверно);
  •  DuplicateNumberError с именем "DuplicateNumberError" и сообщением "Дубликат номера" (в случае, если номер телефона уже есть в списке);
  •  NoNumberError с именем "NoNumberError" и сообщением "Нет  телефона" (в случае, если номера телефона нет в списке).

В функции-конструкторе задаются два параметра – номер телефона и имя пользователя.

Свойствами объекта DirectoryArray является length (количество элементов в справочнике), а также свойства telephone  и name, содержащие соответственно массивы номеров телефонов и имен пользователей.

В первом блоке try выполняется следующая проверка: если первый параметр не соответствует шаблону (три цифры, тире, три цифры, тире, две цифры, тире, две цифры), «бросается» ошибка   WrongNumberError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойствам telephone  и name – пустые массивы   и выполняется возврат из функции.

Затем в другом блоке try выполняется следующая проверка: если второй параметр не соответствует шаблону (последовательность букв кириллицы, первая из которых заглавная, а остальные строчные), «бросается» ошибка   WrongNameError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойствам telephone  и name – пустые массивы   и выполняется возврат из функции.

Если ошибок нет, в конструкторе свойству length присваивается значение 1, а свойства telephone и name задаются как массивы, содержащие по одному элементу – соответственно номер телефона и имя пользователя.

Для объекта DirectoryArray определены методы addNumber, deleteNumber и setToString, реализуемые с помощью функций addNumberItem, deleteNumberItem и convertToString.

Функция addNumberItem добавляет пользователя в телефонный справочник. Первым параметром функции является номер телефона, вторым – имя пользователя. Проверка правильности задания параметров выполняется так же, как в функции-конструкторе, но после вывода сообщения об ошибке функция возвращает значение null. Кроме этого, в третьем блоке  try в цикле проверяется наличие телефона (значения первого параметра) в массиве телефонов (свойстве telephone). Если телефон уже есть в списке, «бросается» ошибка DuplicateNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение null,  в противном случае в конец массива telephone добавляется элемент для нового номера телефона, а в конец массива name – элемент для нового имени. После этого значение свойства length увеличивается на 1, и функция возвращает значение добавленного номера телефона.

Функция deleteNumberItem удаляет телефон, заданный в качестве параметра, из справочника. Сначала в блоке try проверяется соответствие параметра шаблону (телефон). Если параметр не соответствует шаблону, «бросается» ошибка WrongNumberError, в блоке catch выводится сообщение об ошибке и возвращается значение null, иначе в  другом блоке try свойство telephone в цикле проверяется на наличие телефона, заданного в качестве параметра. Если телефон не найден в свойстве или свойство – пустой массив, «бросается» ошибка NoNumberError, в блоке catch выводится сообщение об ошибке и функция возвращает значение null. Если телефон найден, для свойств telephone и name вызывается функция splice() объекта Array, удаляющая элемент с заданным индексом из массива. Свойство length уменьшается на 1, и функция возвращает значение номера удаленного телефона.

Функция convertToString (без параметров) преобразует объект в строку и возвращает результат преобразования. Сначала создается пустая строка. В цикле элемент массива telephone с текущим индексом, затем символ  ":", элемент массива name с текущим индексом, затем символ  ";" последовательно добавляются  к строке.  

Далее в сценарии выполняются следующие действия:

  •  создание объекта DirectoryArray() с неверным значением параметра;
  •  создание объекта DirectoryArray() с  правильными значениями параметров;
  •  вызов метода addNumber() с правильными значениями параметров,  и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода setToString()и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteNumber()с неверным значением параметра;
  •  вызов метода deleteNumber() с правильным значением параметра, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода setToString()и вывод возвращаемого значения с помощью функции alert().

Вариант 10-25

Создайте сценарий в Web-странице, в котором создается пользовательский объект LetterSet (строка символов множества). Символами строки (элементами множества) являются буквы кириллицы. В строке-множестве не должно быть двух одинаковых букв (заглавная и строчная буква считаются одним и тем же символом).  Для объекта определены следующие ошибки:

  •  WrongLetterError с именем "WrongLetterError" и сообщением "Неверный элемент" (в случае, если элемент – не буква кириллицы);
  •  DuplicateLetterError с именем "DuplicateLetterError" и сообщением "Дубликат элемента" (в случае, если элемент во множестве встречается более одного раза).

Параметром функции-конструктора является строка – список букв множества.

Свойствами объекта LetterSet является length (количество элементов в строке) и свойство content, содержащего саму строку элементов.

В конструкторе в первом блоке try выполняется проверка параметра на соответствие шаблону (одна или более заглавных или строчных букв кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка   WrongLetterError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустая строка  и выполняется возврат из функции. Во втором блоке try выполняется проверка параметра на наличие одинаковых букв.  Для этого в цикле для проверки наличия текущего символа используется функция match() для строки-параметра. В параметре функции создается объект RegExp (первым параметром этого объекта является текущий символ, вторым – опции g и i). Функция возвращает массив найденных соответствий. Если размер этого массива (значение свойства length) больще 1 (т.е. буква встречается в строке более одного раза), «бросается» ошибка   DuplicateLetterError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустая строка  и выполняется возврат из функции.

Если проверка прошла успешно, значение длины строки присваивается свойству length, а сама строка – свойству content.

Для объекта LetterSet определены методы hasElement и addElement, реализуемые с помощью функций hasLetterElement и addLetterElement.

Функция hasElement проверяет, если ли в строке буква, заданная в качестве параметра функции. Сначала в блоке try проверяется соответствие параметра шаблону (заглавная или строчная буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение false,  в противном случае создается объект RegExp, в котором параметрами является проверяемая буква  и опция i. Для этого объекта вызывается функция test(), в которой параметром является значение свойства content. Возвращаемое  функцией test()значение возвращается функцией  hasElement().

Функция addLetterItem добавляет букву, заданную в качестве параметра, в строку. Сначала в блоке try проверяется соответствие параметра шаблону (заглавная или строчная буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Во втором блоке try создается объект RegExp, в котором параметрами является проверяемая буква  и опция i. Для этого объекта вызывается функция test(), в которой параметром является значение свойства content. Если функция возвращает значение true, «бросается» ошибка DuplicateLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. В противном случае  буква добавляется в конец строки (свойства content), свойство length увеличивается на 1 и функция возвращает значение добавленной буквы.

Строка, содержащая список букв, вводится с помощью функции prompt() в цикле dowhile. В цикле также создается объект типа LetterSet, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта LetterSet не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  вывод свойства content объекта с помощью функции alert();
  •  вызов метода hasElement() с неверным значением параметра;
  •  вызов метода hasElement() для буквы, отсутствующей в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasElement() для буквы, которая есть в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода addElement() для буквы, которая уже есть в строке;
  •  вызов метода addElement() для буквы, которой нет в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вывод свойства content объекта с помощью функции alert().

Вариант 10-26

Создайте сценарий в Web-странице, в котором создается пользовательский объект LetterSet (строка символов множества). Символами строки (элементами множества) являются буквы кириллицы. В строке-множестве не должно быть двух одинаковых букв (заглавная и строчная буква считаются одним и тем же символом).  Для объекта определены следующие ошибки:

  •  WrongLetterError с именем "WrongLetterError" и сообщением "Неверный элемент" (в случае, если элемент – не буква кириллицы);
  •  NoLetterError с именем "NoLetterError" и сообщением "Нет элемента" (в случае, если элемент не найден во множестве).
  •  DuplicateLetterError с именем "DuplicateLetterError" и сообщением "Дубликат элемента" (в случае, если элемент во множестве встречает более одного раза).

Параметром функции-конструктора является строка – список букв множества.

Свойствами объекта LetterSet является length (количество элементов в строке) и свойство content, содержащего саму строку элементов.

В конструкторе в первом блоке try выполняется проверка параметра на соответствие шаблону (одна или более заглавных или строчных букв кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка   WrongLetterError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустая строка  и выполняется возврат из функции. Во втором блоке try выполняется проверка параметра на наличие одинаковых букв.  Для этого в цикле для проверки наличия текущего символа используется функция match() для строки-параметра. В параметре функции создается объект RegExp (первым параметром этого объекта является текущий символ, вторым – опции g и i). Функция возвращает массив найденных соответствий. Если размер этого массива (значение свойства length) больще 1 (т.е. буква встречается в строке более одного раза), «бросается» ошибка   DuplicateLetterError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустая строка  и выполняется возврат из функции.

Если проверка прошла успешно, значение длины строки присваивается свойству length, а сама строка – свойству content.

Для объекта LetterSet определены методы deleteElement и replaceElement, реализуемые с помощью функций deleteLetterElement и replaceLetterElement.

Функция deleteLetterElement удаляет из строки букву, заданную в качестве параметра функции. Сначала в блоке try проверяется соответствие параметра шаблону (заглавная или строчная буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null,  в противном случае во втором блоке try создается объект RegExp, в котором параметрами является проверяемая буква  и опция i. Для этого объекта вызывается функция test(), в которой параметром является значение свойства content. Если функция вернула значение false (значение параметра отсутствует в строке), «бросается» ошибка NoLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Если ошибок нет, свойству content объекта LetterSet  присваивается значение конкатенации свойств leftContext и rightContext объекта RegExp. Затем свойство length уменьшается на 1, и функция возвращает значение удаленного элемента.

Функция replaceLetterElement заменяет букву, заданную в качестве первого параметра на букву, заданную в качестве второго параметра. Сначала в блоке try проверяется соответствие обоих параметров шаблону (заглавная или строчная буква кириллицы). Если параметры не соответствуют шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Во втором блоке try создается объект RegExp, в котором параметрами является значение первого параметра  и опция i. Для этого объекта вызывается функция test(), в которой параметром является значение свойства content. Если функция возвращает значение false, «бросается» ошибка NoLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. В третьем блоке try создается объект RegExp, в котором параметрами является значение второго параметра  и опция i. Для этого объекта вызывается функция test(), в которой параметром является значение свойства content. Если функция возвращает значение true, «бросается» ошибка DuplicateLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Если ошибок нет, свойству content объекта LetterSet  присваивается значение конкатенации трех строк: значения свойства leftContext объекта RegExp, значения второго параметра и значения свойства rightContext объекта RegExp. Функция возвращает значение замененного элемента.

Строка, содержащая список букв, вводится с помощью функции prompt() в цикле dowhile. В цикле также создается объект типа LetterSet, в котором в качестве параметра конструктора задается введенная строка.  Цикл заканчивается при условии, если значение свойства length объекта LetterSet не равно 0.   

Далее в сценарии выполняются следующие действия:

  •  вывод свойства content объекта с помощью функции alert();
  •  вызов метода deleteElement() с неверным значением параметра;
  •  вызов метода deleteElement() для буквы, отсутствующей в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteElement() для буквы, которая есть в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вывод свойства content объекта с помощью функции alert().
  •  вызов метода replaceElement() со вторым параметром-буквой, которая уже есть в строке;
  •  вызов метода replaceElement() с правильными значениями параметров, и вывод возвращаемого значения с помощью функции alert();
  •  вывод свойства content объекта с помощью функции alert().

Вариант 10-27

Создайте сценарий в Web-странице, в котором создается пользовательский объект HashArray (массив индексированных строк). Для объекта определены следующие ошибки:

  •  WrongKeyError с именем "WrongKeyError" и сообщением "Неверный ключ" (в случае, если элемент не является ключом);
  •  WrongStringError с именем "WrongStringError" и сообщением "Неверная строка" (в случае, если элемент не правильной строкой);
  •  DuplicateKeyError с именем "DuplicateKeyError" и сообщением "Дубликат ключа" (в случае, если строка с данным ключом уже есть в списке);
  •  NoStringError с именем "NoStringError" и сообщением "Нет строки" (в случае, если строка не найдена в массиве);
  •  NoKeyError с именем "NoKeyError" и сообщением "Нет ключа" (в случае, если номера ключа нет в списке).

В функции-конструкторе задаются два параметра – ключ (число) и строка символов.

Свойствами объекта HashArray является length (количество элементов в массиве), а также свойства key  и value, содержащие соответственно массивы ключей и соответствующих ключам строк.

В первом блоке try выполняется следующая проверка: если первый параметр не соответствует шаблону (число, состоящее из одной, двух или трех цифр), «бросается» ошибка   WrongKeyError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойствам key  и value – пустые массивы   и выполняется возврат из функции.

Затем в другом блоке try выполняется следующая проверка: если второй параметр не соответствует шаблону (последовательность букв кириллицы, первая из которых может быть заглавной, а остальные строчные), «бросается» ошибка   WrongStringError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойствам key  и value – пустые массивы   и выполняется возврат из функции.

Если ошибок нет, в конструкторе свойству length присваивается значение 1, а свойства key  и value задаются как массивы, содержащие по одному элементу – соответственно значению ключа и значению строки.

Для объекта HashArray определены методы addValue и hasValue, реализуемые с помощью функций addValueInArray и hasValueInArray.

Функция addValueInArray добавляет строку в массив. Первым параметром функции является значение ключа, вторым – строка. Проверка правильности задания параметров выполняется так же, как в функции-конструкторе, но после вывода сообщения об ошибке функция возвращает значение null. Кроме этого, в третьем блоке  try в цикле проверяется наличие ключа (значения первого параметра) в массиве ключей (свойстве key). Если ключ уже есть в списке, «бросается» ошибка DuplicateKeyError, в блоке catch выводится сообщение об ошибке и возвращается значение null,  в противном случае в конец массива key добавляется элемент для нового ключа, а в конец массива value – элемент для новой строки. После этого значение свойства length увеличивается на 1, и функция возвращает значение добавленной строки.   

Функция hasValueInArray проверяет, есть ли заданная в качестве параметра строка в массиве. Сначала в блоке try проверяется соответствие параметра шаблону (строка). Если параметр не соответствует шаблону, «бросается» ошибка WrongStringError, в блоке catch выводится сообщение об ошибке и возвращается значение null.  В противном случае в следующем блоке  try в цикле просматриваются элементы свойства value и, если строка не найдена в свойстве, «бросается» ошибка NoStringError, в блоке catch выводится сообщение об ошибке и возвращается значение false. Если строка найдена в свойстве, функция возвращает значение ключа для этой строки – элемента  свойства key с найденным во втором блоке try индексом для строки в свойстве value.

Далее в сценарии выполняются следующие действия:

  •  создание объекта HashArray() с неверным значением параметра;
  •  создание объекта HashArray() с  правильными значениями параметров;
  •  вызов метода addValue() с правильными значениями параметров,  и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasValue()с неверным значением параметра;
  •  вызов метода hasValue() с правильным значением параметра, и вывод возвращаемого значения с помощью функции alert().

Вариант 10-28

Создайте сценарий в Web-странице, в котором создается пользовательский объект HashArray (массив индексированных строк). Для объекта определены следующие ошибки:

  •  WrongKeyError с именем "WrongKeyError" и сообщением "Неверный ключ" (в случае, если элемент не является ключом);
  •  WrongStringError с именем "WrongStringError" и сообщением "Неверная строка" (в случае, если элемент не правильной строкой);
  •  DuplicateKeyError с именем "DuplicateKeyError" и сообщением "Дубликат ключа" (в случае, если строка с данным ключом уже есть в списке);
  •  NoStringError с именем "NoStringError" и сообщением "Нет строки" (в случае, если строка не найдена в массиве);
  •  NoKeyError с именем "NoKeyError" и сообщением "Нет ключа" (в случае, если номера ключа нет в списке).

В функции-конструкторе задаются два параметра – ключ (число) и строка символов.

Свойствами объекта HashArray является length (количество элементов в массиве), а также свойства key  и value, содержащие соответственно массивы ключей и соответствующих ключам строк.

В первом блоке try выполняется следующая проверка: если первый параметр не соответствует шаблону (число, состоящее из одной, двух или трех цифр), «бросается» ошибка   WrongKeyError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойствам key  и value – пустые массивы   и выполняется возврат из функции.

Затем в другом блоке try выполняется следующая проверка: если второй параметр не соответствует шаблону (последовательность букв кириллицы, первая из которых может быть заглавной, а остальные строчные), «бросается» ошибка   WrongStringError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойствам key  и value – пустые массивы   и выполняется возврат из функции.

Если ошибок нет, в конструкторе свойству length присваивается значение 1, а свойства key  и value задаются как массивы, содержащие по одному элементу – соответственно значению ключа и значению строки.

Для объекта HashArray определены методы addValue, getValue и replaceValue, реализуемые с помощью функций addValueInArray,  getdValueInArray и replaceValueInArray.

Функция addValueInArray добавляет строку в массив. Первым параметром функции является значение ключа, вторым – строка. Проверка правильности задания параметров выполняется так же, как в функции-конструкторе, но после вывода сообщения об ошибке функция возвращает значение null. Кроме этого, в третьем блоке  try в цикле проверяется наличие ключа (значения первого параметра) в массиве ключей (свойстве key). Если ключ уже есть в списке, «бросается» ошибка DuplicateKeyError, в блоке catch выводится сообщение об ошибке и возвращается значение null,  в противном случае в конец массива key добавляется элемент для нового ключа, а в конец массива value – элемент для новой строки. После этого значение свойства length увеличивается на 1, и функция возвращает значение добавленной строки.

Функция getValueInArray получает строку в массиве по заданному в качестве параметра значению ключа. В первом блоке try выполняется следующая проверка: если параметр не соответствует шаблону (число, состоящее из одной, двух или трех цифр), «бросается» ошибка   WrongKeyError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойствам key  и value – пустые массивы   и выполняется возврат из функции. Во втором блоке  try в цикле проверяется наличие ключа (значения первого параметра) в массиве ключей (свойстве key). Если ключа нет в списке, «бросается» ошибка NoKeyError, в блоке catch выводится сообщение об ошибке и возвращается значение null,  в противном случае функция возвращает  значение элемента массива value с найденным во втором блоке try индексом массива  key.   

Функция replaceValueInArray заменяет строку, заданную в качестве второго параметра,  для заданного в качестве первого параметра значения ключа. В начале функции для первого параметра выполняются те же два блока try, что и в функции getValueInArray. Затем в третьем блоке try выполняется проверка на соответствие значения второго параметра шаблону (строка). Если второй параметр не соответствует шаблону, «бросается» ошибка   WrongStringError, и функция возвращает значение null. Если ошибок нет, значение элемента массива value с найденным во втором блоке try индексом массива  key меняется на значение второго параметра, а затем   функция возвращает  старое значение строки.  

Далее в сценарии выполняются следующие действия:

  •  создание объекта HashArray() с неверным значением параметра;
  •  создание объекта HashArray() с  правильными значениями параметров;
  •  вызов метода addValue() с правильными значениями параметров,  и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода getValue()с неверным значением параметра;
  •  вызов метода getValue() с правильным значением параметра, и вывод возвращаемого значения с помощью функции alert().
  •  вызов метода replaceValue()с неверными значениями параметров;
  •  вызов метода replaceValue() с правильными значениями параметров, и вывод возвращаемого значения с помощью функции alert().

Вариант 10-29

Создайте сценарий в Web-странице, в котором создается пользовательский объект SortedLetterSet (массива упорядоченных символов множества). Элементами массива  являются буквы кириллицы, упорядоченные в порядке возрастания кодов символов. Во множестве не должно быть двух одинаковых букв (заглавная и строчная буква считаются одним и тем же символом).  Для объекта определены следующие ошибки:

  •  WrongLetterError с именем "WrongLetterError" и сообщением "Неверный элемент" (в случае, если элемент – не буква кириллицы);
  •  DuplicateLetterError с именем "DuplicateLetterError" и сообщением "Дубликат элемента" (в случае, если элемент во множестве встречает более одного раза).

В функции-конструкторе в качестве параметров задается список символов букв (количество букв в списке может быть произвольным).

Свойствами объекта SortedLetterSet является length (количество букв в массиве) и свойство content, содержащего сам массив букв.

В конструкторе количество переданных в функцию параметров определяется с помощью свойства arguments.length объекта Function, а сами параметры функции хранятся в массиве arguments (оба свойства доступны внутри функции).  В блоке try выполняется в цикле проверка элементов массива  arguments на соответствие следующему шаблону: значение элемента должно строчной или заглавной буквой кириллицы. Если какой-либо элемент массива не соответствует шаблону, «бросается» ошибка   WrongLetterError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустая строка  и выполняется возврат из функции.

Во втором блоке try выполняется проверка параметров на наличие одинаковых букв.  Для этого с помощью функции join() объекта Array из массива аргументов создается строка.  Затем в цикле для проверки единственности текущего элемента  массива используется функция match() для созданной строки. В параметре функции создается объект RegExp (первым параметром этого объекта является текущий элемент массива, вторым – опции g и i). Функция возвращает массив найденных соответствий. Если размер этого массива (значение свойства length) больще 1 (т.е. буква встречается в строке более одного раза), «бросается» ошибка   DuplicateLetterError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустая строка  и выполняется возврат из функции.

Если ошибок в строке не обнаружено, значение количества элементов в массиве присваивается свойству length, а сам массив – свойству content. Элементы массива в content сортируются с помощью функции sort()объекта Array.

Для объекта SortedLetterSet определены методы hasElement и addElement, реализуемые с помощью функций hasLetterElement и addLetterElement.

Функция hasElement проверяет, если ли в строке буква, заданная в качестве параметра функции. Сначала в блоке try проверяется соответствие параметра шаблону (заглавная или строчная буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение false.  В противном случае массив в цикле просматривается по элементам, и если значение параметра совпадает со значением одного из элементов массива, функция возвращает значение true. Если значение параметра не найдено в массиве, функция возвращает значение false.  

Функция addLetterElement добавляет букву, заданную в качестве параметра, в массив. Сначала в блоке try проверяется соответствие параметра шаблону (заглавная или строчная буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Во втором блоке try массив в цикле просматривается по элементам, и если значение параметра совпадает со значением одного из элементов массива, «бросается» ошибка DuplicateLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Если ошибок не обнаружено, новый элемент с помощью функции push() объекта Array добавляется в конец массива, а затем с помощью функции sort()   объекта Array массив сортируется.  Свойство length увеличивается на 1, и функция возвращает значение добавленной буквы.

Далее в сценарии выполняются следующие действия:

  •  создание объекта SortedLetterSet с неверным значением одного из параметров (не буквой);
  •   создание объекта SortedLetterSet с двумя одинаковыми значениями параметров;
  •  создание объекта SortedLetterSet с правильными значениями параметров;
  •  вызов метода hasElement() с неверным значением параметра;
  •  вызов метода hasElement() для буквы, отсутствующей в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода hasElement() для буквы, которая есть в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода addElement() для буквы, которая уже есть в строке;
  •  вызов метода addElement() для буквы, которой нет в строке, и вывод возвращаемого значения с помощью функции alert().

Вариант 10-30

Создайте сценарий в Web-странице, в котором создается пользовательский объект SortedLetterSet (массива упорядоченных символов множества). Элементами массива  являются буквы кириллицы, упорядоченные в порядке возрастания кодов символов. Во множестве не должно быть двух одинаковых букв (заглавная и строчная буква считаются одним и тем же символом).  Для объекта определены следующие ошибки:

  •  WrongLetterError с именем "WrongLetterError" и сообщением "Неверный элемент" (в случае, если элемент – не буква кириллицы);
  •  NoLetterError с именем "NoLetterError" и сообщением "Нет элемента" (в случае, если элемент не найден во множестве).
  •  DuplicateLetterError с именем "DuplicateLetterError" и сообщением "Дубликат элемента" (в случае, если элемент во множестве встречает более одного раза).

В функции-конструкторе в качестве параметров задается список символов букв (количество букв в списке может быть произвольным).

Свойствами объекта SortedLetterSet является length (количество букв в массиве) и свойство content, содержащего сам массив букв.

В конструкторе количество переданных в функцию параметров определяется с помощью свойства arguments.length объекта Function, а сами параметры функции хранятся в массиве arguments (оба свойства доступны внутри функции).  В блоке try выполняется в цикле проверка элементов массива  arguments на соответствие следующему шаблону: значение элемента должно строчной или заглавной буквой кириллицы. Если какой-либо элемент массива не соответствует шаблону, «бросается» ошибка   WrongLetterError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустая строка  и выполняется возврат из функции.

Во втором блоке try выполняется проверка параметров на наличие одинаковых букв.  Для этого с помощью функции join() объекта Array из массива аргументов создается строка.  Затем в цикле для проверки единственности текущего элемента  массива используется функция match() для созданной строки. В параметре функции создается объект RegExp (первым параметром этого объекта является текущий элемент массива, вторым – опции g и i). Функция возвращает массив найденных соответствий. Если размер этого массива (значение свойства length) больще 1 (т.е. буква встречается в строке более одного раза), «бросается» ошибка   DuplicateLetterError, в блоке catch выводится сообщение об ошибке, свойству length присваивается значение 0, свойству content – пустая строка  и выполняется возврат из функции.

Если ошибок в строке не обнаружено, значение количества элементов в массиве присваивается свойству length, а сам массив – свойству content. Элементы массива в content сортируются с помощью функции sort()объекта Array.

Для объекта SortedLetterSet определены методы deleteElement и replaceElement, реализуемые с помощью функций deleteLetterElement и replaceLetterElement.

Функция deleteLetterElement удаляет букву, заданную в качестве параметра, из массива. Сначала в блоке try проверяется соответствие параметра шаблону (заглавная или строчная буква кириллицы). Если параметр не соответствует шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Во втором блоке try массив в цикле просматривается по элементам, и если значение параметра не совпадает со значением ни одного из элементов массива, либо массив пустой, «бросается» ошибка NoLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Если ошибок не обнаружено, новый элемент удаляется из массива с помощью функции splice() объекта Array.  Свойство length уменьшается на 1, и функция возвращает значение удаленной буквы.

Функция replaceLetterElement заменяет букву, заданную в качестве первого параметра на букву, заданную в качестве второго параметра. Сначала в блоке try проверяется соответствие обоих параметров шаблону (заглавная или строчная буква кириллицы). Если параметры не соответствуют шаблону, «бросается» ошибка WrongLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Во втором блоке try массив в цикле просматривается по элементам, и если значение первого параметра не совпадает со значением ни одного из элементов массива, «бросается» ошибка NoLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. В третьем блоке try массив в цикле просматривается по элементам, и если значение второго параметра совпадает со значением одного из элементов массива, «бросается» ошибка DuplicateLetterError, в блоке catch выводится сообщение об ошибке и возвращается значение null. Если ошибок нет, с помощью функции splice() объекта Array значение элемента с индексом, найденным во втором блоке try, заменяется значением второго параметра. Функция возвращает значение замененного элемента.

Далее в сценарии выполняются следующие действия:

  •  создание объекта SortedLetterSet с неверным значением одного из параметров (не буквой);
  •   создание объекта SortedLetterSet с двумя одинаковыми значениями параметров;
  •  создание объекта SortedLetterSet с правильными значениями параметров;
  •  вызов метода deleteElement() с неверным значением параметра;
  •  вызов метода deleteElement() для буквы, отсутствующей в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода deleteElement() для буквы, которая есть в строке, и вывод возвращаемого значения с помощью функции alert();
  •  вызов метода replaceElement() для замены на букву, которая уже есть в строке;
  •  вызов метода replaceElement() для замены на букву, которой нет в строке, и вывод возвращаемого значения с помощью функции alert().

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

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

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

  1.  Как создается пользовательский объект в JavaScript и как создается новый экземпляр пользовательского объекта?
  2.  Опишите синтаксис и семантику предложения forin и предложение with?
  3.  Опишите синтаксис и семантику предложения with?
  4.  Как действуют операторы typeof и instanceof, и какие значения они возвращают?
  5.  Как действуют операторы delete, in и void, и какие значения они возвращают?
  6.  Для решения каких задач используются регулярные выражения?
  7.  Каким способами может быть создан объект Regular Expression? Какие опции могут быть заданы в шаблоне и  каково их назначение?
  8.  Какие свойства определены для объекта Regular Expression, и каково их назначение?
  9.  Как работают функции test() и compile() объекта Regular Expression?
  10.  Как работает функция exec() объекта Regular Expression?
  11.  Для каких целей используется встроенный объект RegExp, и какие свойства определены для этого объекта? Дайте краткую характеристику каждого свойства.
  12.  Какие функции работы с регулярными выражениями определены для встроенного объекта String?
  13.  Какие метасимволы могут использоваться в регулярных выражениях? Для каких целей может использоваться каждый из этих метасимволов?
  14.  Для каких целей реализуется операция альтернации в регулярных выражениях и как она реализуется?
  15.  Как обозначается любой одиночный символ в регулярных выражениях?
  16.  Для каких целей в регулярных выражениях используются метасимволы "+", "*" и "?"?
  17.  Как задается количество повторений символа в регулярных выражениях?
  18.  Для каких целей используются метасимволы ".*" и ".*?" и каково отличие результатов поиска с использованием этих метасимволов?
  19.  Как задаются классы символов в регулярных выражениях и как они интерпретируются в шаблонах? Как интерпретируются инвертированные классы символов?
  20.  Как задаются и как интерпретируются коды символов в регулярных выражениях?
  21.  Как задаются и как интерпретируются управляющие символы в регулярных выражениях?
  22.  Какие классы символов можно задать с помощью специальных символов  в регулярных выражениях?
  23.  Как задаются и как интерпретируются анкеры в регулярных выражениях?
  24.  Для каких целей используются круглые скобки в регулярных выражениях? Как сохраняются и используются результаты поиска шаблонов или их частей в круглых скобках?
  25.  Как задаются и как интерпретируются обратные ссылки в шаблонах регулярных выражений?
  26.  Как задается поиск по шаблону в круглых скобках без сохранения результатов поиска в промежуточных переменных регулярных выражений?
  27.  Какие две формы группировок с «заглядыванием» вперед можно использовать в шаблонах регулярных выражений и как интерпретируются эти группировки при поиске и получении результата поиска?
  28.  Чем отличается типовая ошибка в программе от пользовательской ошибки?
  29.  Как генерируется объект Error в сценарии JavaScript, и какие свойства имеет этот объект?
  30.  Как функционирует механизм обработки ошибок в JavaScript с использованием блоков trycatch..finally?
  31.  Как в сценарии JavaScript создается новый объект Error для пользовательской ошибки? Как «бросается» и обрабатывается этот объект в блоках try и catch?


 

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

37242. Утилита 40.5 KB
  Так компьютерные утилиты можно разделить на три группы: Утилиты сервисного обслуживания компьютера утилиты расширения функциональности и информационные утилиты. Утилиты сервисного обслуживания УСО К УСО относятся все виды сервисных программ такие как утилиты по: дефрагментации проверке и исправлению структуры разделов жёсткого диска исправлению системных зависимостей тонкой настройке системы и т. Утилиты по контролю ошибок и повреждений структуры разделов и SMRTревизоры Проверяют на наличие ошибок файловую систему и устройство...
37243. Что такое мультимедиа и мультимедиа-компьютер 32.5 KB
  Мультимедиакомпьютер это компьютер снабженный аппаратными и программными средствами реализующими технологию мультимедиа. Области применения мультимедиа Обучение с использованием компьютерных технологий Специальными исследованиями установлено что из услышанного в памяти остается только четверть из увиденного треть при комбинированном воздействии зрения и слуха 50 а если вовлечь учащегося в активные действия в процессе изучения при помощи мультимедийных приложений 75 [46]. Технологию мультимедиа составляют две основные...
37244. Как возник Интернет 89 KB
  Поэтому многие ошибочно думают будто Всемирная паутина это и есть Internet. С ее появлением и началось триумфальное шествие Internet как средства информации и коммуникации для каждого. С этого времени в Internet начали активно выходить также обычные рядовые пользователи.
37245. Операционная система, ее назначение и функции 423.5 KB
  Вопрос 17 Организация файловой системы Все современные дисковые операционные системы обеспечивают создание файловой системы предназначенной для хранения данных на дисках и обеспечения доступа к ним. Принцип организации файловой системы табличный. Формат служебных данных определяется конкретной файловой системой. Но для дисков большого объема такой подход неэффективен а для некоторых файловых систем и просто невозможен.
37246. Операционные системы. Их назначение и функции 69.5 KB
  Windows Серверные использующиеся в серверах сетей как центральное звено а также в качестве элементов систем управления; основная черта – надежность; представители UNIX Windows NT Специализированные ОС ориентированные на решение узких классов задач с жестким набором требований высокопроизводительные вычисления управление в реальном времени;такие системы неразрывно связаны с аппаратной платформой; представители – специализированные версии UNIX системы собственной разработки; Мобильные ОС – вариант развития настольных ОС на...
37247. Внутренняя память 81.5 KB
  К ним относятся оперативная память постоянная память и энергонезависимая память. Оперативная память RM Rndom ccess Memory Память RM это массив кристаллических ячеек способных сохранять данные. Она используется для оперативного обмена информацией командами и данными между процессором внешней памятью и периферийными системами.
37248. Программное обеспечение. Уровни ПО 74.5 KB
  Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило базовые программные средства непосредственно входят в состав базового оборудования и хранятся в специальных микросхемах называемых постоянными запоминающими устройствами ПЗУ Red Only Memory ROM. Эти программные средства называют средствами обеспечения пользовательского интерфейса. Средства сжатия данных архиваторы.
37249. Организация файловой системы 399 KB
  Файловая система определяет где и каким образом на носителе будут записаны файлы и представляет операционной системе доступ к этим файлам. Любая файловая система предназначена для хранения информации о физическом размещении частей файла. От файловой системы требуется четкое выполнение следующих действий: Определение физического расположения частей файла; Определение наличия свободного места и выделение его для вновь создаваемых файлов.
37250. Работа с формулами 410.46 KB
  В Excel в качестве операнда могут выступать константы ссылки на ячейки имена или функции значения которых будут использованы. Пересчет можно провести непосредственно из окна Параметры: кнопка Вычислить F9 вычисление значений для всех открытых листов включая таблицы данных а также обновление всех открытых диаграмм; кнопка Пересчет листа выполнение расчетов по текущему листу а также по связанным с ним диаграммами и таблицами данных Ошибка Если пользователь допустил ошибку в ячейке с формулой появится одно из следующих...