Сравнительный анализ JavaScript и VBScriptРефераты >> Программирование и компьютеры >> Сравнительный анализ JavaScript и VBScript
do
группа-операторов
loop until условие_окончания
В циклах do…loop заранее не известно количество итераций повторения группы операторов, но иногда требуется выполнить точно заданное число повторений цикла. Такую возможность предоставляет цикл for…next.
В этом цикле задается переменная, называемая счетчиком цикла, которая увеличивается (или уменьшается) на заданную величину после выполнения группы операторов. Цикл завершает свои итерации, когда значение счетчика превысит (или станет меньше) заданной величины. Синтаксис такой конструкции цикла следующий:
for счетчик = нач_значение to кон_значение [step приращение]
операторы
next
В начале выполнения этого цикла переменной счетчик присваивается значение, заданное параметром нач_значение. Выполняются операторы цикла, и значение переменной цикла увеличивается или уменьшается (в зависимости от знака) на величину приращение. Осуществляется проверка, не превысило ли (или не стало меньше) новое значение счетчика значение параметра кон_значение. Если нет, то итерации повторяются, если да, то цикл завершает свое выполнение.
Параметр приращение цикла for…next является необязательным. Если он не задан, то по умолчанию переменная цикла увеличивается на 1.
Конструкция for each…next позволяет организовать цикл по элементам массива или по объектам некоторого набора (семейства) объектов, не зная заранее число элементов в массиве или число объектов в наборе. Синтаксис этой конструкции следующий:
for each элемент in группа
операторы
next
Параметр группа задает имя массива или имя набора объектов. Переменная элемент на каждом шаге цикла будет содержать ссылку на элемент массива или объект набора. Цикл завершает свое выполнение, как только завершится последовательный перебор всех элементов массива или объектов набора.
Процедуры
JavaScript
Процедура, или функция, – это именованная последовательность операторов, которая инициализируется и выполняется простой ссылкой на имя функции.
Процедура задается оператором function, имеющим следующий синтаксис:
function имя_функции ([параметры] {
[операторы]
}
где имя_функции – любое правильное имя языка JavaScript, параметры – список передаваемых в процедуру параметров, элементы которого отделяются запятыми.
Оператор function только определяет процедуру, но не выполняет ее. Для вызова процедуры достаточно указать ее имя с заданными в скобках параметрами.
Если в процедуре параметры отсутствуют, наличие скобок без параметров в операторе вызова процедуры обязательно.
Процедура может возвращать некоторое вычисляемое в ней значение. В этом случае обычно она называется функцией, и в операторах, определяющих последовательность выполняемых ею действий, обязательно должен присутствовать оператор return, задающий возвращаемое функцией значение. Вызов функции осуществляется аналогично вызову процедуры, но ее можно использовать в выражениях JavaScript.
Обычно все определения процедур и функции задаются в разделе <HEAD> документа. Это обеспечивает интерпретацию и сохранение в памяти всех процедур при загрузке документа в браузер.
VBScript
VBScript предусматривает создание двух типов процедур:
· Процедура sub
· Процедура function (или функция)
Процедура sub выполняет последовательность действий, но не возвращает никакого, значения, ассоциированного с ее именем. Она имеет следующий синтаксис:
sub имя_процедуры ([список-параметров])
операторы
end sub
Через необязательный параметр можно передать в процедуру внешние данные или, наоборот, получить некоторые вычисленные ею значения.
Вызов процедуры sub осуществляется оператором call, после которого указывается имя процедуры и в круглых скобках параметры. Процедуру можно вызвать и простым указанием ее имени, но в этом случае передаваемые ей параметры задаются без скобок. Следующие два способа вызова процедуры эквивалентны:
call MyProc(firstarg, secondarg)
MyProc firstarg, secondarg
Функция также выполняет определенную последовательность операторов и ей можно передать внешние данные через параметры процедуры, но, в отличие от процедуры sub, она возвращает значение, присваиваемое ее имени, и может быть использована в выражениях VBScript. Она имеет следующий синтаксис:
function имя_процедуры ([список-параметров])
операторы
имя_процедуры = значение
end function
В операторах процедуры обязательно должен присутствовать оператор присвоения имени процедуры некоторого значения.
VBScript предоставляет два способа передачи параметров в процедуру:
· По ссылке
· По значению
Способ передачи параметров по ссылке, применяемый по умолчанию, передает фактический адрес переменной, используемой в качестве параметра. Это позволяет изменить содержимое соответствующего адреса памяти, а тем самым, и значение переменной.
Передача параметров по значению предполагает передачу в процедуру копии переменной, а не адреса самой переменной. Поэтому любые изменения параметра внутри процедуры воздействуют на копию, а не на саму переменную, и, следовательно, значение переменной, переданной в качестве параметра, изменяться не будет. Для указания интерпретатору, что параметр передается в процедуру по значению, используется ключевое слово ByVal, задаваемое перед параметром в описании процедуры.
Объекты
JavaScript
На самом верхнем уровне иерархии находится объект window, представляющий окно браузера и являющийся “родителем” всех остальных объектов. Расположенные ниже в иерархии объекты могут иметь свои подчиненные объекты. На рис. 1 показана структура объектов клиента (браузера).
Рис. 1. Иерархия объектов JavaScript на стороне клиента
Особняком стоит объект navigator с двумя дочерними (подчиненными) объектами. Он относится к самому браузеру, и его свойства позволяют определить характеристики программы просмотра.
Каждая страница в добавление к объекту navigator обязательно имеет еще четыре объекта:
· window – объект верхнего уровня, свойства которого применяются ко всему окну, в котором отображается документ.
· document – свойства которого определяются содержимым самого документа: связи, цвет фона, формы и т.д.
· location – свойства которого связаны с URL-адресом отображаемого документа.
· history – представляет адреса ранее загружавшихся HTML-страниц.
Кроме указанных объектов страница может иметь дополнительные объекты, зависящие от ее содержимого, которые являются дочерними объектами объекта document. Если на страницы расположена форма, то все ее элементы являются дочерними объектами этой формы. Для задания точного имени объекта используется точечная нотация с полным указанием всей цепочки наследования объекта. Это возможно, так как объект верхнего уровня имеет свойство, значением которого является объект нижнего уровня. Ссылка на объект осуществляется по имени, заданному параметром NAME тэга HTML.