Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

в цикле

for…in
переменная цикла переходит к следующему полю объекта, и тело цикла выполняется вновь.

Пример использования оператора

continue
:

var s = "", i=0;

while (i < 10) {

 i++;

 // Пропускаем число 5

 if (i==5) {

continue;

 }

}

s += i;

Прочие операторы

Рассмотрим еще несколько часто применяемых операторов (см. табл. П1.9). 

Таблица П1.9. Прочие операторы

Оператор Описание
.
Точка.
Применяется для доступа к свойству объекта или для вызова его метода
[]
Квадратные скобки. Применяются для индексирования массива
Скобки. Применяются либо для изменения порядка вычисления выражений, либо для передачи параметров функциям
,
Запятая. Применяется для многократных вычислений

С помощью оператора "

,
" можно, например, в разделе итерации цикла
for
изменять значение сразу нескольких переменных:

var i, j;

j = 10;

for (i = 0; i<=10; i++, j--) {

 …

}

Обработка исключительных ситуаций 

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

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

try…catch
. Синтаксис следующий:

try

 Защищенный блок

catch (except)

 Блок обработки исключительных ситуаций

После ключевого слова

try
здесь записываются те операторы, при выполнении которых потенциально может возникнуть ошибка. В качестве параметра
except
надо использовать любое имя переменной (предварительно объявлять эту переменную не нужно). Если в защищенном блоке не возникло ошибки, то значение этой переменной будет равно нулю; в случае же возникновения исключительной ситуации управление сразу передается в блок
catch
, при этом переменная
except
как экземпляр объекта
Error
будет содержать два свойства:
error
— числовой код возникшей ошибки и
description
— краткое описание ошибки.

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

try {

 //Подключаем сетевой диск

 WshNetwork.MapNetworkDrive(Drive, NetPath);

} catch (e) {

 //Обрабатываем возможные ошибки

 if (e != 0) {

//Выводим сообщение об ошибке

Mess="Ошибка при подключении диска " + Drive + " к " + NetPath+

"\nКод ошибки: "+е.number+"\nОписание: "+е.description;

WshShell.Popup(Mess, 0, "Подключение сетевого диска", vbCritical);

 }

}

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

В табл. П1.10 операторы языка JScript расположены по старшинству, т.е. в составных операторах первыми будут выполняться те из них, которые стоят в этой таблице выше. Если операторы расположены в одной строке таблицы, то они выполняются слева направо.

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

Оператор Описание
. []
Доступ к полю объекта, индексирование в массиве, вызов функции
++ -- - ~ !
Унарные операторы
* / %
Умножение, деление, вычисление остатка от деления
+ - +
Сложение, вычитание, конкатенация строк
<< >> >>>
Битовые сдвиги
< <= > >=
Меньше, меньше или равно, больше, больше
или равно
== !=
Равенство, неравенство
&
Логическое И
^
Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ
|
Логическое ИЛИ
&&
Оператор отношения И
||
Оператор отношения ИЛИ
?:
Условный оператор
= += -= *= /= %= >>= >>>= <<= |= &= ^=
 Присваивание
,
Многократное вычисление

Функции

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

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

Встроенные функции

В табл. П1.11 описаны встроенные функции языка JScript, которые в сценарии можно вызывать в любом месте без предварительного описания.

Таблица П1.11. Встроенные функции

Функция Описание 
escape(charstring)
 
Кодирование строки
charstring
с применением URL-кодировки. При этом все специальные неотображаемые символы преобразуются к виду %хх, где хх — шестнадцатеричный код символа 
eval(codestring)
 
Интерпретация и выполнение кода JScript, содержащегося в строке
codestring
. Эта функция позволяет динамически создавать текст сценария
isFinite(number)
Возвращает
true
, если параметр
number
является корректным числом. В противном случае возвращает
false
isNaN(numvalue)
Возвращает
true
, если параметр
numvalue
имеет специальное значение NaN (см. описание числового типа). В противном случае возвращает
false
. Эту функцию можно применять для оценки значений; возвращаемых функциями преобразования типов
parseInt
и
parseFloat
parseFloat(numstring)
Преобразовывает строку
numstring
в число с плавающей точкой
parseInt(numstring, [radix])
Преобразовывает строку
numstring
в целое число. Целочисленный параметр
radix
может принимать значения от 2 до 36, которые указывают основание счисления для числа, содержащегося в numstring. Если
radix
не указан, то строки с префиксом
'0х'
задают шестнадцатеричные числа, а строки с префиксом '
0
' — восьмеричные. Все остальные строки определяют десятичные числа
unescape(charstring)
Выполняет действие, противоположное действию функции
escape
, т.е. перекодирует строку
charstring
из URL-кодировки в текстовую строку

Функции пользователя 

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

function Имя_функции([параметр1] [, параметр2] [... , параметрN]) {

 …

 Тело функции

 …

 [return значение;]

Поделиться:
Популярные книги

Дракон - не подарок

Суббота Светлана
2. Королевская академия Драко
Фантастика:
фэнтези
6.74
рейтинг книги
Дракон - не подарок

Бастард Императора. Том 8

Орлов Андрей Юрьевич
8. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 8

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Эра Мангуста. Том 2

Третьяков Андрей
2. Рос: Мангуст
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эра Мангуста. Том 2

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Один на миллион. Трилогия

Земляной Андрей Борисович
Один на миллион
Фантастика:
боевая фантастика
8.95
рейтинг книги
Один на миллион. Трилогия

Помещицы из будущего

Порохня Анна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Помещицы из будущего

Шлейф сандала

Лерн Анна
Фантастика:
фэнтези
6.00
рейтинг книги
Шлейф сандала

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Император

Рави Ивар
7. Прометей
Фантастика:
фэнтези
7.11
рейтинг книги
Император

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Князь Серединного мира

Земляной Андрей Борисович
4. Страж
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Князь Серединного мира

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри