Додаток 1 довідник по мові jscript

Довідник по мові JScript

Мова JScript - це розроблений Microsoft інтерпретується об'єктно-орієнтована мова сценаріїв, який спочатку призначався для створення динамічних HTML-сторінок. Відзначимо, що JScript не є урізаною версією будь-якого іншого мови програмування, хоча по синтаксису він схожий на мови Java і С. В цьому додатку ми коротко розглянемо ті можливості і властивості JScript, які можуть знадобитися при складанні сценаріїв, що виконуються за допомогою WSH, не зачіпаючи при цьому питання, пов'язані зі складанням сценаріїв для HTML-сторінок.

В кінці кожного оператора JScript потрібно ставити крапку з комою. наприклад:

При цьому один оператор може розташовуватися на декількох рядках, наприклад:

theSum = 1; // А цей частина рядка

У сценаріях JScript, як і в будь-якому іншому мовою програмування, можна використовувати змінні, звертаючись до них по імені. При цьому змінні можуть бути як глобальними (доступними з будь-якого місця сценарію), так і локальними (область дії обмежується функцією, в якій вони визначені).

Мова JScript є регістру залежним, тобто імена MyVariable і myvariable представляють різні змінні. Крім цього, при виборі імен змінних слід дотримуватися наступних правил:

ім'я змінної повинно починатися з літери або з символів "_", "$" і може складатися тільки з букв, цифр, а також символів "_", "$";

ім'я змінної не повинно збігатися з зарезервованими ключовими словами мови JScript.

Список ключових слів JScript наведено в табл. П1.1.

Таблиця П1.1. Зарезервовані ключові слова JScript

break default false new true

case delete finally null try

catch do for return typeof

class else function super var

const enum if switch void

continue export import this while

debugger extends in throw with

Значення змінним в JScript присвоюються за допомогою оператора присвоювання "=". наприклад:

Тут ми оголосили змінну MyVariable і записали в неї текстовий рядок. Однак далі в будь-якому місці сценарію ми можемо привласнити змінної MyVariable числове значення (при цьому тип змінної зміниться), наприклад:

Крім цього, змінної можна привласнити спеціальне значення null:

В цьому випадку змінної MyVariable не призначається ніякого певного типу (порожній тип). Таке присвоювання застосовується в тих випадках, коли необхідно оголосити змінну і проинициализировать її, не привласнюючи цієї змінної ніякого певного типу і значення.

У JScript підтримуються шість типів даних, головними з яких є числа, рядки, об'єкти і логічні дані. Два типу - це null (порожній тип) і undefined (невизначений тип).

У сценаріях JScript числа можуть використовуватися в різних форматах.

Цілі числа в діапазоні від -999 999 999 999 999 до 999 999 999 999 999. Крім звичайного десяткового, цілі числа можуть записуватися в вісімковому (префікс "0" і цифри 0-7) або в шестнадцатиричном (префікс "0х", цифри 0 -9, символи "А", "В", "С", "D", "Е" і "F") вигляді. Наприклад, вісімкове число 0377 і шестнадцатеричное 0xFF рівні десятичному 255.

Речові числа, які можуть бути записані як з плаваючою точкою (наприклад, -10.567), так і в науковій нотації (наприклад, 10567Е-3, що дорівнює 10.567 ( "число 10 567 помножити на 10 у степені -3")). Значення речових змінних і констант повинні лежати в діапазоні від -Number.MAX_VALUE до Number.MAX_VALUE, де параметр Number.MAX_VALUE є спеціальним числовим значенням, що дорівнює найбільшому речовому числу, з яким може працювати JScript (Number.MAX_VALUE приблизно дорівнює 1.79Е + 308 ).

Крім Number.MAX_VALUE в JScript є ще кілька спеціальних числових значень.

NaN (Not a Number) - так зване "нечісло", яке не відповідає ніякому числу (це значення генерується в тих випадках, коли результат виконання операції не може бути представлений у вигляді числа, наприклад, при перетворенні рядка "1s2" до числового типу) .

Позитивна нескінченність Number.POSITIVE_INFINITY (число, яке більше, ніж Number.MAX_VALUE).

Негативна нескінченність Number.NEGATIVE_INFINITY (число, яке менше, ніж -Number.MAX_VALUE).

Найближче число до нуля Number.MIN_VALUE (приблизно дорівнює 2.22Е-308). Всі числа, великі -Number.MIN_VALUE, але менші Number.MIN_VALUE, вважаються рівними нулю.

Текстові рядки - це послідовність символів, укладених в одинарні або подвійні лапки, наприклад:

'І тоді він крикнув "Бережись!"'

Рядок може мати нульову довжину (порожній рядок):

У JScript можна також використовувати спеціальні комбінації символів, за допомогою яких в рядки включаються деякі не відображаються символи або символи, що мають спеціальне значення. Кожна з цих комбінацій (escape-послідовностей) починається з символу зворотної косої межі "\" (табл. П1.2).

Таблиця П1.2. Спеціальні комбінації символів

У JScript під об'єктом розуміється сукупність властивостей і методів. Метод - це внутрішня функція об'єкта, властивість - це одне значення будь-якого типу або кілька таких значень (у вигляді масиву або об'єкта), що зберігаються всередині об'єкта. Підтримуються три види об'єктів:

вбудовані (внутрішні) об'єкти;

об'єкти, створювані програмістом в сценарії;

зовнішні об'єкти (наприклад, об'єкти WSH). Більш докладно об'єкти будуть розглянуті нижче.

Логічні дані призначені для виконання операцій порівняння, а також для використання в умовних операторах. При цьому логічні дані мають тільки два значення: true (істина) і false (брехня). Відзначимо, що в JScript ці значення ніяк не співвідносяться з числами 1 і 0.

Null (порожній тип) і undefined (невизначений тип)

Якщо змінна була оголошена за допомогою ключового слова var. але їй ще жодного разу не присвоювалося значення, вона має невизначений тип (undefined):

Після виконання цього рядка змінна MyVariable має тип undefined. Як вже зазначалося вище, якщо тепер привласнити змінної значення null. то ця змінна буде типу null (порожній тип):

Перетворення типів даних

Однією з особливостей мови JScript є те, що якщо в виразах зустрічаються змінні різних типів, то автоматично відбувається перетворення всіх числових даних в строкове представлення. Наприклад, такі логічні вирази будуть рівні true:

(Тут "==" означає оператор порівняння). Для перетворення рядків у числа потрібно застосовувати дві спеціальні функції: parseInt (перетворення до цілого числа) і parseFloat (перетворення до числа з плаваючою комою). Наприклад, після виконання наступних рядків:

значенням змінної s буде рядок "13".

У JScript підтримуються оператори різних типів, які схожі на оператори мови С.

Унарними називаються оператори, які застосовуються до одного операнду (табл. П1.3).

Обробка виняткових ситуацій

Під час виконання сценарію можуть виникати різні виняткові ситуації (наприклад, розподіл на нуль або спроба відкрити неіснуючий файл), які призводять до помилок часу виконання - при цьому на екран виводиться діалогове вікно з повідомленням про помилку і виконання сценарію припиняється.

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

Блок обробки виняткових ситуацій

Після ключового слова try тут записуються ті оператори, при виконанні яких потенційно може виникнути помилка. Як параметр except треба використовувати будь-яке ім'я змінної (попередньо оголошувати цю змінну не потрібно). Якщо в захищеному блоці не виникло помилки, то значення цієї змінної дорівнюватиме нулю; в разі ж виникнення виняткової ситуації управління відразу передається в блок catch. при цьому змінна except як екземпляр об'єкта Error буде містити два властивості: error - числовий код виникла помилки і description - короткий опис помилки.

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

// Підключаємо мережевий диск

// Обробляємо можливі помилки

// Виводимо повідомлення про помилку

Mess = "Помилка при підключенні диска" + Drive + "до" + NetPath +

"\ NКод помилки:" + е.number + "\ nОпісаніе:" + е.description;

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

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

У табл. П1.10 оператори мови JScript розташовані по старшинству, тобто в складових операторах першими будуть виконуватися ті з них, які стоять в цій таблиці вище. Якщо оператори розташовані в одному рядку таблиці, то вони виконуються зліва направо.

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

Кодування рядки charstring із застосуванням URL-кодування. При цьому всі спеціальні не відображаються символи перетворюються до вигляду% хх, де хх - шістнадцятковий код символу

Інтерпретація і виконання коду JScript, що міститься в рядку codestring. Ця функція дозволяє динамічно створювати текст сценарію

Повертає true. якщо параметр number є коректним числом. В іншому випадку повертає false

Повертає true. якщо параметр numvalue обмежене спеціальним значенням NaN (див. опис числового типу). В іншому випадку повертає false. Цю функцію можна застосовувати для оцінки значень; повертаються функціями перетворення типів parseInt і parseFloat

Перетворює рядок numstring в число з плаваючою точкою

Перетворює рядок numstring в ціле число. Цілочисельний параметр radix може приймати значення від 2 до 36, які вказують підставу числення для числа, що міститься в numstring. Якщо radix не вказано, то рядки з префіксом '0х' задають шістнадцятиричні числа, а рядки з префіксом "0" - восьмеричні. Решта всіх рядків визначають десяткові числа

Виконує дію, протилежне дії функції escape. тобто перекодовує рядок charstring з URL-кодування в текстовий рядок

Функції, визначені користувачем, можуть перебувати в будь-якому місці сценарію і мати довільне число параметрів (аргументів). Загальний вигляд визначення функції має вигляд:

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

Ключове слово return дозволяє функції повернути значення будь-якого допустимого типу. Наприклад, наведена нижче функція MyFunction повертає true. якщо обидва її аргументу менше 10:

if ((х<10) && (у<10)) return true

else return false;

Вбудовані об'єкти (класи)

Як уже зазначалося на самому початку розділу, JScript є об'єктно-орієнтованою мовою, тому математичні обчислення, робота з рядками, датою і часом, а також такими структурами, як масиви і колекції, здійснюються за допомогою відповідних вбудованих об'єктів. У табл. П1.12 описані деякі об'єкти, які можуть бути корисні при створенні сценаріїв за допомогою WSH.

Таблиця П1.12. Деякі вбудовані об'єкти JScript

Робота з текстовими рядками

Для того щоб в сценарії використовувати вбудований об'єкт, необхідно створити змінну, за допомогою якої можна буде отримати доступ до властивостей і методів цього об'єкта. Для створення більшості змінних такого виду застосовується оператор new і спеціальна функція - конструктор потрібного об'єкту. Назва конструктора завжди збігається з назвою відповідного вбудованого об'єкта. Наведемо приклад створення об'єктів Date і Array!

Відзначимо, що об'єкти string можна створювати, просто записуючи в лапках значення рядка:

Наведемо об'єкти, наведені в табл. П1.12, більш докладно.

Новий об'єкт вбудованого класу Array можна створити за допомогою оператора new наступними способами:

new Array () - створення масиву нульової довжини;

new Array (N) - створення масиву довжини N;

new Array (а0. a1. aN) - створення масиву довжини N + 1 c елементами а0. a1. aN.

A3 = new Array (0, "Рядок", 2.5);

Нумерація елементів в масивах завжди починається з нуля. Після того як масив створений і ініціалізованим першим, звертатися до її елементів можна за допомогою звичайного оператора індексації [], наприклад:

Довжину масиву, тобто число містяться в ньому елементів, можна дізнатися за допомогою властивості length об'єкта Array. Для того щоб динамічно змінити довжину масиву (зменшити або збільшити), досить просто записати відповідне значення в властивість length:

А = new Array (1,2,3,4,5); // Довжина масиву А дорівнює 5

A.length = 3; // Тепер довжина масиву А дорівнює 3

Деякі найбільш часто використовувані методи вбудованого об'єкта Array описані в табл. П1.13.

Таблиця П1.13. Методи об'єкта Array