Рефетека.ру / Информатика и програм-ие

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

Омский Государственный Педагогический Университет

Кафедра информатики

курсовая работа

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

Проверил: Кирьякова И.В.

Выполнил: Поросков Д.В.

Группа: 34

Омск 2002
Содержание

Введение ….3
Общий обзор языка …4
Типы данных …5
Переменные …8
Операторы …10
Операторы управления …13
Процедуры …19
Объекты …21
Список литературы …24
Введение

Объектные модели языков сценариев тесно связаны с тэгами HTML. При загрузке страницы HTML в браузер интерпретатор языка создает объекты со свойствами, определенными значениями тэгов страницы. Говорят, что браузер отражает HTML- страницу в свойствах объектов, и иногда этот процесс называют отражением
(reflection). Созданные объекты существуют в виде иерархической структуры, отражающей структуру самой HTML-страницы. На верхнем уровне расположен объект window, представляющий собой активное окно браузера. Далее вниз по иерархической лестнице следуют объекты frame, document, location и history, представляющие соответственно фрейм, непосредственно сам документ, адрес загружаемого документа и список ранее загружавшихся документов, и т.д.
Значения свойств объектов отражают значения соответствующих параметров тэгов страницы или установленных системных параметров.

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

Еще один аспект работы с объектами языков сценариев заключается в том, что нельзя изменить свойства объектов. Браузер обрабатывает страницу только один раз, компонуя и отображая ее. Поэтому попытка в сценарии изменить свойство отображенного элемента страницы, обречена на провал. Только повторная загрузка страницы приведет к желаемому результату.
Общий обзор языка

JavaScript
Язык программирования JavaScript разработан фирмой Netscape для создания интерактивных HTML-документов. Это объектно-ориентированный язык разработки встраиваемых приложений, выполняющих как на стороне клиента, так и на стороне сервера. Синтаксис языка очень похож на синтаксис языка Java – поэтому его часто называют Java-подобным. Клиентские приложения выполняются браузером просмотра Web-документов на машине пользователя, серверные приложения выполняются на сервере.

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

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

Основные области использования языка JavaScript при создании интерактивных
HTML-страниц:
. Динамическое создание документа с помощью сценария
. Оперативная проверка достоверности заполняемых пользователем полей форм

HTML до передачи их на сервер
. Создание динамических HTML-страниц совместно с каскадными таблицами стилей и объектной моделью документа
. Взаимодействие с пользователем при решении “локальных” задач, решаемых приложением JavaScript, встроенном в HTML-страницу

VBScript
Язык создания сценариев VBScript разработан фирмой Microsoft и является подмножеством достаточно распространенного в среде программистов языка
Visual Basic разработки прикладных Windows-приложений. Как и его родитель, язык VBScript достаточно прост и легок в изучении.

Преимуществом его применения для создания сценариев является возможность использования, с небольшими корректировками, ранее написанных процедур на языках Visual Basic и Visual Basic for Application.

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

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

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

JavaScript поддерживает четыре простых типа данных:
. Целый
. Вещественный
. Строковый
. Булевый, или логический

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

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

123 // целое положительное число
-123 // целое отрицательное число
+123 // целое положительное число

Для задания вещественных литералов используется синтаксис чисел с десятичной точкой, отделяющей дробную часть числа от целой, или запись вещественных чисел в научной нотации с указанием после символа “e” или “E” порядка числа. Пример правильных вещественных чисел:

1.25 0.125e01 12.5E-1 0.0125E+2

Строковый литерал – последовательность алфавитно-цифровых символов, заключенная в одинарные (‘) или двойные кавычки (“), например: “Ира”,
‘ИРА’. При задании строковых переменных нельзя смешивать одинарные и двойные кавычки. Недопустимо задавать строку, например, в виде “Ира’.
Двойные кавычки – это один самостоятельный символ, а не последовательность двух символов одинарных кавычек. Если в строке нужно использовать символ кавычек, то строковый литерал необходимо заключать в кавычки противоположного вида:

“It’s a string” // Значение строки равно It’s a string

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

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

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

Таблица 1. Подтипы данных, хранящихся в типе Variant

|Подтип |Описание |Функция |
| | |преобразовани|
| | |я |
|Empty |Переменная не инициализирована | |
|Null |Переменная не содержит никаких допустимых | |
| |данных | |
|Error |Содержит номер ошибки | |
|Boolean |Содержит значения либо True, либо False |CBool |
|Byte |Содержит целые числа в диапазоне от 0 до 255 |CByte |
|Integer |Содержит целые числа в диапазоне от -32 768 до |CInt |
| |32 767 | |
|Currency |Значения в диапазоне |CCur |
| |от -922 337 203 685 477.5808 до | |
| |922 337 203 685 477.5807 | |
|Long |Содержит целые числа в диапазоне |CLng |
| |от -2 147 483 648 до 2 147 483 647 | |
|Single |Содержит вещественные числа с плавающей точкой |CSng |
| |одинарной точности в диапазоне | |
| |от -3.402823E38 до -1.401298E-45 | |
| |для отрицательных значений | |
| |и от 1.401298E-45 до 3.402823E38 | |
| |для положительных значений | |
|Double |Содержит вещественные числа с плавающей точкой |CDbl |
| |удвоенной точности в диапазоне | |
| |от -1.79769313486232E308 до | |
| |-4.94065645841247E-324 | |
| |для отрицательных значений | |
| |и от 4.94065645841247E-324 до | |
| |1.79769313486232E308 | |
| |для положительных значений | |
|Date(Time)|Содержит число, которое представляет дату в |CDate |
| |диапазоне от 1 января 100 года до 31 декабря | |
| |9999 года | |
|String |Содержит строку переменной длины (до 2 |CStr |
| |миллионов символов) | |
|Object |Содержит ссылку на объект | |

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

Значение Empty имеет переменная, которая была объявлена в операторе Dim
(см. ниже), но ей еще не присваивали никакого значения. Это значение считается равным 0 в математических операциях и равным пустой строке (“”) в операциях со строковыми значениями.

Значение Null означает, что переменная не содержит данных. Его не следует путать со значением Empty. Вариантная переменная может получить значение
Null в результате выполнения некоторых операций над ней. Это значение можно присвоить переменной, тогда как значение Empty – нельзя.

Значение Error – это специальное значение, которое используется для указания возникновения ошибки в процедуре.

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

23 ‘Целое число
-23.78 ‘Действительное число с фиксированной точкой
-237.8E-1 ‘Действительное число с плавающей точкой

Строковые литералы задаются в виде последовательности символов, заключенных в двойные кавычки (“):

“Это строковый литерал”.

Литералы даты и времени заключаются между символами числовых знаков (#).
VBScript поддерживает большое число форматов даты и времени. Следующие примеры показывают правильные литералы даты и времени, соответствующие дате
10 июня 1999 года:

#10-6-99 22:20#
#10/6/99#
#10/6/99 10:20pm#

Внутренне литералы даты и времени представляются в виде действительных чисел удвоенной точности. Целая часть представляет количество дней, прошедших от даты 30 декабря 1899 года, а дробная часть – время суток.

Булевы литералы True и False являются константами целого типа, принимающими соответственно значения 1 и 0. Любое числовое значение, не равное нулю, преобразуется функцией CBool в True, а нулевое значение (целое или действительное) – в False.

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

Вариативный тип данных предоставляет программисту более эффективный способ обработки и хранения данных, не заботясь о типе хранимых данных. Если, например, при вычислениях первоначально в переменной вариантного типа хранилось значение типа Byte (число в диапазоне от 0 до 255), и в результате выполнения некоторых действий это значение стало отрицательным, то просто изменится представление этого числа в переменной (оно станет
Integer) и не возникает никакой ошибки. Правда, за это удобство приходится платить используемой памятью: для вариантного типа данных вне зависимости от хранимого подтипа нужно 16 байт памяти.

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

JavaScript
Каждая переменная имеет имя, которое должно начинаться с буквы латинского алфавита, либо символа подчеркивания “_”, за которым следует любая комбинация алфавитно-цифровых символов или символов подчеркивания.
Следующие имена являются допустимыми именами переменных

Temp1
MyFunction
_my_Method

Язык JavaScript чувствителен к регистру. Это означает, что строчные и прописные буквы алфавита считаются разными символами.

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

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

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

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

var weekDay = “Пятница”;

задает переменную weekDay, присваивает ей строковое значение “Пятница”, и тем самым определяет ее тип как строковый.

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

VBScript
Переменные используются для хранения данных приложения. Прежде чем переменную можно будет использовать, ее необходимо объявить. Это можно осуществить явным способом с помощью оператора Dim, или неявным – просто использовать имя переменной в операторе присваивания. Синтаксис оператора явного объявления переменной следующий:

Dim имя_переменной

Параметр имя_переменной – имя объявляемой переменной. Оно должно начинаться с буквы, не содержать пробелов, точку (.), восклицательный знак (!), а также символов (@), (&), ($), (#) и не превышать длину в 255 символов.

Язык VBScript не чувствителен к регистру. Это означает, что в нем не различаются строчные и прописные буквы. Поэтому, например, и m, и M будут ссылаться на одну и ту же переменную, если используются в качестве идентификатора переменной.

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

Const conName = “Дмитрий” ‘Строковая константа
Const conPi = 3.1416 ‘Числовая константа
Const conBirthDay = #1-8-53# ‘Константа даты
Операторы

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

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

Таблица 2. Арифметические операторы

|Оператор |Название |
|+ |Сложение |
|- |Вычитание |
|* |Умножение |
|/ |Деление |
|% |Остаток от деления целых чисел |
|++ |Увеличение значения переменной на единицу |
|-- |Уменьшение значения переменной на единицу |

Кроме простого оператора присваивания (=) существуют сокращенные формы операторов присваивания, совмещенных с арифметическими операторами, в которых производятся арифметические действия над левыми и правыми операндами и результат присваивается переменной, заданной левым операндом.
Все они перечислены в табл. 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 && |Возвращает выраж1, если |var1 && var2 |
|И) |выраж2 |оно преобразуется или |(равно ‘Кот’)|
| | |равно false, иначе | |
| | |выраж2 |var2 && var3 |
| | | | |
| | | |(равно false)|
||| (логическое |выраж1 || |Возвращает выраж1, если |var1 || var2 |
|ИЛИ) |выраж2 |оно преобразуется или | |
| | |равно true, иначе выраж2|(равно ‘Кит’)|
| | | | |
| | | |var3 || var1 |
| | | | |
| | | |(равно ‘Кит’)|
| | | | |
| | | |var3 || false|
| | | | |
| | | |(равно false)|
|! (логическое |!выраж |Если выраж равно true, |!var1 |
|НЕ) | |возвращает false; если |(равно false)|
| | |выраж равно false, | |
| | |возвращает true |!var3 |
| | | |(равно true) |

Логические операторы и операторы сравнения используются в операторах цикла и условия для проверки завершения цикла или выполнения определенной группы операторов.

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

string = “Моя”+”строка”; // Значение переменной string равно “Моястрока”

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

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

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

range = (mark

Рефетека ру refoteka@gmail.com