Реферат: Сравнительный анализ языков программирования JavaScript и VBScript

--PAGE_BREAK--


Кроме простого оператора присваивания (=) существуют сокращенные формы операторов присваивания, совмещенных с арифметическими операторами, в которых производятся арифметические действия над левыми и правыми операндами и результат присваивается переменной, заданной левым операндом. Все они перечислены в табл. 3.
Таблица 3. Сокращенные операторы присваивания

Оператор

Значение

X * = Y

X = X * Y

X / = Y

X = X / Y

X + = Y

X = X + Y

X — = Y

X = X – Y

X % = Y

X = X % Y



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

Оператор

Название

==

Равно

!=

Не равно

>=

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

<=

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

>

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

<

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



При использовании этих операторов в выражении оно вычисляется равным true, если соответствующее сравнение верно, в противном случае значение выражения равно false.
Логические операторы представлены в табл. 5. В примерах предполагается, что переменная var1 = ‘Кит’, var2 = ‘Кот’, var3 = false.
Таблица 5.Логические операторы

Оператор

Синтаксис

Описание

Пример

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

выраж1 &&выраж2

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

var1 && var2

(равно‘Кот’)

var2 && var3

(равноfalse)

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

выраж1 ||выраж2

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

var1 || var2

(равно‘Кит’)

var3 || var1

(равно‘Кит’)

var3 || false

(равноfalse)

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

!выраж

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

!var1

(равноfalse)

!var3

(равноtrue)



Логические операторы и операторы сравнения используются в операторах цикла и условия для проверки завершения цикла или выполнения определенной группы операторов.
Строковые операторы используются для создания строковых выражений. В JavaScript, собственно говоря, существует только один строковый оператор – оператор конкатенации (соединения) строк (+), если не считать сокращенной формы оператора присваивания со сложением (+=). Этот оператор присоединяет к строковому значению первого операнда строковое значение второго, получая результат, равный соединению строк:
string= “Моя”+”строка”; // Значение переменной stringравно “Моястрока”
Условный оператор является единственным оператором, использующим три операнда. Его значением является один из двух операндов, определяемый из условия истинности третьего. Его синтаксис таков:
(условие)? знач1: знач2;
Если операнд условие имеет значение true, то результатом вычисления условного оператора будет знач1, в противном случае – знач2. Например, оператор
range= (mark<= 2)? “Пересдача”: “Зачтено”;
присваивает переменной rangeзначение “Пересдача”, если переменная mark меньше либо равно 2, в противном случае ей присваивается значение “Зачтено”.
Кроме перечисленных выше операторов в JavaScriptсуществует большая группа операторов для поразрядных действий с данными. В них содержимое каждого оператора рассматривается как последовательность битов, а не как данные строкового, числового или булевого типов.
VBScript

При вычислении выражений необходимо производить разнообразные действия с переменными и литералами. Для этих целей в VBScript предусмотрен ряд встроенных операторов, выполняющих арифметические операции, операции сравнения, конкатенацию (соединение) строк и логические операции над данными, хранящимися в переменных, или представленными литералами.
В VBScriptкаждый оператор размещается на отдельной строке и не завершается никаким разделителем. Однако, если возникает необходимость задания нескольких операторов в одной строке, то они разделяются двоеточием (:).
Если оператор достаточно длинный, или из соображений удобства чтения исходного текста необходимо расположить его в нескольких строках, то следует использовать символы продолжения – пробел со знаком подчеркивания (_).
Комментарии в языке VBScriptвводятся в текст программы одинарной кавычкой (‘). Любой текст, расположенный в строке за одинарной кавычкой, трактуется интерпретатором как комментарий, и, естественно, не обрабатывается им.
Большую группу представляют арифметические операторы, выполняющие основные арифметические действия над числовыми данными: возведение в степень (^), умножение (*), деление (/), целочисленное деление (\), сложение (+) и вычитание (-). Они подчиняются принятым в математике правилам старшинства операций: сначала выполняется возведение в степень, затем умножение или деление, далее сложение или вычитание. Скобки изменяют последовательность вычисления операций.
Для сравнения данных используются операторы сравнения: равенство (=), неравенство (<>), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=). Объекты сравниваются с помощью специального оператора Is.
В VBScript нет специального знака для операции присваивания. Один и тот же знака равенства используется как для операции присваивания значения переменной (см. выше), так и для операции сравнения на равенство. Смысл операции, представляемой этим символом, зависит от контекста, в котором она применена.
Существует ряд операторов, выполняющих действия над логическими (булевыми) данными: отрицание (Not), конъюнкция (And), дизъюнкция (Or), исключающее ИЛИ (Xor), эквивалентность (Eqv) и импликация (Imp).
Оператор (&) производит конкатенацию (соединение) двух строк. При его выполнении данные, содержащиеся в операндах, преобразуются при необходимости к строковому подтипу, и осуществляется сцепление двух строк.


Операторы управления
JavaScript

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

·         Операторы выбора, или условные

·         Операторы цикла

·         Операторы манипулирования с объектами
Операторы выбора

К этой группе операторов относятся операторы, которые выполняют определенные блоки операторов в зависимости от истинности некоторого булевского выражения. Этот оператор условия if…else и переключатель switch.
Оператор условия ifприменяется, если необходимо вычислить некоторый блок операторов в зависимости от истинности заданного условия, и имеет следующий синтаксис:
if(условие) {

      операторы1

}

[else{

      операторы2

}]
Первая группа операторов операторы1 выполняется при условии истинности выражения условие. Необязательный блок else задает группу операторов операторы2, которая будет выполнена в случае ложности условия, заданного в блоке if.
Внутри группы выполняемых операторов могут использоваться любые операторы JavaScript, в том числе и операторы условия. Таким образом, можно создавать группу вложенных операторов условия и реализовывать сложные алгоритмы проверки.
В операторе switch вычисляется одно выражение и сравнивается со значениями, заданными в блоках case. В случае совпадения выполняются операторы соответствующего блока case. Синтаксис этого оператора следующий:
switch(выражение) {

      caseзначение1 :

[операторы1]

break;

      caseзначение2 :

            [операторы2]

            break;



default:

      [операторы]

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

Оператор цикла повторно выполняет последовательность операторов JavaScript, определенных в его теле, пока не выполнится некоторое заданное условие. В языке существует два оператора цикла: forи while. Они отличаются механизмом организации цикла.
Оператор цикла forпозволяет организовать выполнение блока операторов заданное число раз. Он определяет переменную, называемую переменной цикла, которая изменяет свое значение во время выполнения цикла. Условие завершения цикла зависит от значения этой переменной. Оператор имеет следующий синтаксис:
for([инициал_выражение];[условие];[изменяющее_выражение]) {

      [операторы]

}
Параметром инициал_выражение задается и инициализируется переменная цикла. Это выражение вычисляется один раз в начале выполнения цикла. После этого проверяется истинность выражения условие. Если оно истинно, то выполняется блок операторов тела цикла, ограниченного фигурными скобками; вычисляется изменяющее_выражение, содержащее  переменную цикла, и снова проверяется истинность выражения условие. Если оно истинно, то повторяется цикл вычислений, если нет, то оператор цикла завершает свое выполнение.
Цикл whileвыполняется пока истинно выражение, задающее условие выполнения цикла. Его синтаксис следующий:
while(условие) {

      [операторы]

}
Сначала проверяется истинность условия, заданного в заголовке цикла, а затем выполняются (или не выполняются) операторы тела цикла. Проверка истинности условия осуществляется на каждом шаге цикла. Использование этого цикла предполагает, что условное выражение окончания цикла меняется в зависимости от вычисленных значений переменных и выражений в теле цикла.
Иногда необходимо завершить цикл не по условию, задаваемому в заголовке цикла, а в результате вычисления некоторого условия в теле цикла. Для этой цели в JavaScriptсуществуют операторы break и continue.
Оператор breakзавершает выполнение цикла и передает управление оператору, непосредственно следующим за оператором цикла. Оператор continueпрекращает выполнение текущей итерации и начинает выполнение следующей, т.е. в цикле whileон передает управление на проверку выражения условие цикла, а в цикле for– на вычисление выражения изменяющее_выражение.
Манипулирование объектами

Четыре оператора JavaScriptпредназначены для работы с объектами. Это оператор new, создающий новый объект, операторы for…in и with и ключевое слово this.
Оператор for…in позволяет организовать цикл по свойствам объекта JavaScript. Синтаксис его следующий:
for(переменная_цикла inобъект) {

      [операторы]

}
Этот цикл производит перебор свойств объекта. В переменной цикла на каждой итерации сохраняется значение свойства объекта. Количество итераций равно количеству свойств, существующих у заданного в заголовке цикла объекта.
Оператор with задает объект по умолчанию для блока операторов, определенных в его теле. Это означает, что все встречаемые в операторах этого блока свойства и методы, являются свойствами и методами указанного объекта. Применение данного оператора избавляет от необходимости указывать иерархию принадлежности объекта и сокращает исходный текст программы.
VBScript

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

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

·         if…then

·         if…then…else

·         select case
Конструкция if…then применяется, когда необходимо выполнить группу операторов или один оператор в зависимости от значения выражения, задаваемого в качестве параметра условия конструкции.
Ее первая форма
ifусловие thenоператор
позволяет вычислить указанный оператор, если истинно заданное условие.
Вторая форма этой конструкции позволяет вычислить группу операторов, заданных в нескольких строках кода, и имеет следующий синтаксис:
ifусловие then

операторы

endif
Наиболее общий синтаксис конструкцииif…then…else следующий:
ifусловие1 then

[группа-операторов-1]

[elseIfусловие2 then

[группа-операторов-2]…

[else

[группа-операторов-n]]

endif
Сначала проверяется условие1. Если оно ложно, то проверяется условие2. Если и оно ложно, то проверяется следующее условие из группы elseIf до тех пор, пока не будет найдено истинное условие, операторы которого и выполняются. После чего управление передается оператору, непосредственно следующему за оператором endif.
Если не найдено ни одно истинное условие, то выполняется группа операторов из блока else, если он присутствует в конструкции. В противном случае управление передается оператору, следующему за оператором endif.
Блоков elseIfв конструкции if…then…elseможет быть сколько угодно, тогда как блок elseвсегда один, если он задан.
Если в предыдущей конструкции принятия решения проверяется равенство одного выражения разным условиям, она становится не достаточно эффективной как с точки зрения ее выполнения, так и сточки зрения легкости восприятия текста. В этом случае следует использовать конструкцию select case:
selectcaseтестируемое_выражение

[caseсписок_значений1

[группа-операторов-1]]

[caseсписок_значений2

[группа-операторов-2]]

.

.

.

[caseelse

[группа-операторов-n]]

endselect
Вычисляется единственное выражение тестируемое_выражение и последовательно сравнивается со значениями из списка значений блоков case. Если значение выражения совпадает со значением, заданным в списке какого-либо блока case, то выполняется группа операторов данного блока, и после этого управление передается оператору, непосредственно следующему за оператором endselect.
Если не найдено ни одного соответствия значения тестируемого выражения со значениями из списков значений, то выполняется группа операторов блока caseelse(в случае его наличия).
Список значений блока caseможет состоять из одного или нескольких значений. В случае нескольких значений они разделяются запятыми.
Операторы цикла

Для повторного выполнения несколько раз группы операторов VBScript, как и любой другой язык программирования, предоставляет разнообразные типы операторов цикла:

·         do…loop

·         for…next

·         for each…next
Конструкция do…loopприменяется для выполнения группы операторов, пока некоторое выражение ложно или истинно. Она имеет несколько разновидностей, отличающихся моментом проверки условия завершения цикла (до начала выполнения группы операторов или после) и тем, истинно или ложно это условие.
Цикл dowhile выполняется до тех пор, пока истинно условие окончания цикла:
dowhileусловие_окончания

      группа-операторов

loop
Перед выполнением операторов цикла проверяется, истинно ли выражение условие_окончания. Если оно истинно, то выполняется группа-операторов (в ней изменяются значения переменных, входящих в выражение условие_окончания). После этого снова проверяется условие окончания цикла и, в случае его истинности, выполняется группа операторов тела цикла. Процедура выполняется до тех пор, пока выражение условие_окончания не станет ложным.
Цикл dowhileне будет выполнен ни разу, если при первой проверке условие_окончания ложно.
Другая разновидность цикла dowhile сначала выполняет группу операторов, а потом проверяет условие окончания цикла:
do

      группа-операторов

loopwhileусловие_окончания
Этот цикл обязательно выполнит один раз группу операторов, определенных в теле цикла.
Цикл dountilаналогичен первой разновидности цикла dowhile, за исключением того, что он выполняется, пока значение выражения условие_окончания ложно:
dountilусловие_окончания

      группа-операторов

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

      группа-операторов

loopuntilусловие_окончания
В циклах do…loop заранее не известно количество итераций повторения группы операторов, но иногда требуется выполнить точно заданное число повторений цикла. Такую возможность предоставляет цикл for…next.
В этом цикле задается переменная, называемая счетчиком цикла, которая увеличивается (или уменьшается) на заданную величину после выполнения группы операторов. Цикл завершает свои итерации, когда значение счетчика превысит (или станет меньше) заданной величины. Синтаксис такой конструкции цикла следующий:
forсчетчик = нач_значение toкон_значение [stepприращение]

      операторы

next
В начале выполнения этого цикла переменной счетчик присваивается значение, заданное параметром нач_значение. Выполняются операторы цикла, и значение переменной цикла увеличивается или уменьшается (в зависимости от знака) на величину приращение. Осуществляется проверка, не превысило ли (или не стало меньше) новое значение счетчика значение параметра кон_значение. Если нет, то итерации повторяются, если да, то цикл завершает свое выполнение.
Параметр приращение цикла for…nextявляется необязательным. Если он не задан, то по умолчанию переменная цикла увеличивается на 1.
Конструкция foreach…next позволяет организовать цикл по элементам массива или по объектам некоторого набора (семейства) объектов, не зная заранее число элементов в массиве или число объектов в наборе. Синтаксис этой конструкции следующий:
foreachэлемент inгруппа

      операторы

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


Процедуры
    продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по информатике