Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВебТех Конспект лекций 2011 укр.doc
Скачиваний:
37
Добавлен:
18.08.2019
Размер:
928 Кб
Скачать
☆

Оператори мови

У цьому розділі будуть розглянуті оператори JavaScript. Основна увага при цьому ми приділимо операторам декларування та управління потоком обчислень. Без них не може бути написана жодна JavaScript-програма.

Загальний перелік цих операторів виглядає наступним чином (відразу обмовимося, що цей список неповний):

{...}

  1. if ... else ...

  2. ()?

  3. while

  4. for

  5. break

  6. continue

  7. return

{...}

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

If ... else ...

Умовний оператор застосовується для розгалуження програми по деякому логічному умові. Є два варіанти синтаксису:

if (логіческое_вираженіе) оператор;

if (логіческое_вираженіе) оператор_1; else оператор_2;

Логічний вираз - це вираз, який приймає значення true або false. У першому варіанті синтаксису: якщо логіческое_вираженіе одно true, то виконується вказаний оператор. У другому варіанті синтаксису: якщо логіческое_вираженіе одно true, то виконується оператор_1, якщо ж воно дорівнює false оператор_2. Приклад використання

if (navigator.javaEnabled ()) alert ('Ваш браузер підтримує Java');

else alert ('Ваш браузер НЕ підтримує Java');

()?:

Цей оператор, званий умовним виразом, видає одне з двох значень в залежності від виконання деякої умови. Синтаксис його такий:

(логіческое_вираженіе)? значення_1: значення_2

Якщо логіческое_вираженіе одно true, то повертається значення_1, у противному випадку значення_2. Умовний вираз легко імітується оператором if ... else, проте воно дозволяє зробити більш компактним і легко сприймаються як код програми. Наприклад, наступні два фрагменти рівносильні:

TheFinalMessage = (k> 5)? 'Готово!' : 'Зачекайте ...';

if (k> 5) TheFinalMessage = 'Готово!';

else TheFinalMessage = 'Зачекайте ...';

while

Оператор while задає цикл. Визначається він у загальному випадку наступним чином:

while (условіе_продолженія_цікла) тело_цікла;

Тіло циклу може бути як простим, так і складеним оператором. Складовою оператор, як завжди, полягає у фігурні дужки. Рекомендується і простий оператор укладати в них, щоб програму можна було легко модифікувати. Условіе_продолженія_цікла є логічним виразом. Тіло виконують до тих пір, поки вірно логічне умова. Формально, цикл while працює наступним чином:

перевіряється условіе_продолженія_цікла:

якщо воно помилкове (false), цикл закінчений,

  1. якщо ж істинно (true), то продовжуємо далі;

виконується тело_цікла;

  1. переходимо до пункту 1.

Такий цикл використовується, коли заздалегідь невідомо кількість ітерацій, наприклад, в очікуванні деякої події. Приклад:

var s ='';

while (s.length <6) {

s=prompt('Введіть рядок довжини не менше 6:','');

}

alert (' Ваша рядок: '+ s +'. Спасибі! ');

for

Оператор for - це ще один оператор циклу. У загальному випадку він має вигляд:

for (инициализация_переменных_цикла;

    умова_продовження_цикла;

    модифікация_зміних_цикла) тело_цикла;

Тіло циклу може бути як простим, так і складеним оператором (складовою необхідно укладати в фігурні дужки). Оператори инициализация_переменных_цикла і модификация_переменных_цикла можуть складатися з декількох простих операторів, у цьому випадку прості оператори повинні бути розділені комою. Условіе_продолженія_цікла є логічним виразом. Цикл for працює наступним чином:

  1. виконується инициализация_переменных_цикла;

  2. перевіряється условіе_продолженія_цікла:

  3. якщо воно помилкове (false), цикл закінчений,

  4. якщо ж істинно (true), то продовжуємо далі;

  5. виконується тело_цікла;

  6. виконується модификация_переменных_цикла;

  7. переходимо до пункту 2.

Розглянемо типовий приклад використання цього оператора :

document.write ('Куби чисел від 1 до 100:');

for (n = 1; n <= 100; n + +);

document.write ('<BR>' + n + '<sup> 3 </ sup> =' + Math.pow (n, 3));

Тут Math - вбудований об'єкт, що дає численні математичні константи та функції, а Math.pow (n, m) обчислює ступеневу функцію nm.Результат роботи скрипта отримаєте самостійно.

Break

Оператор break дозволяє достроково залишити тіло циклу. Повертаючись до нашого прикладу з кубами чисел, роздрукуємо тільки куби, які не перевищують 5000.

Document.write ('Куби чисел, менші 5000:');

for (n = 1; n <= 100; n + +) {

s = Math.pow (n, 3);

if (s> 5000) break;

document.write ('<BR>' + n + '<sup> 3 </ sup> =' + s);

}

Незважаючи на те, що змінну n ми змусили пробігати від 1 до 100, тобто завідомо із запасом, реально ж цикл виконається для значень n від 1 до ... отримаєте самі!

continue

Оператор continue дозволяє перейти до наступної ітерації циклу, пропустивши виконання всіх нижчестоящих операторів у тілі циклу. Якщо нам потрібно вивести куби чисел від 1 до 100, що перевищують 10 000, то ми можемо скласти такий цикл:

document.write ('Куби чисел від 1 до 100, великі 10 000:');

for (n = 1; n <= 100; n + +) {

s = Math.pow (n, 3);

if (s <= 10000) continue;

document.write ('<BR>' + n + '<sup> 3 </ sup> =' + s);

}

Перевірте самостійно, куби яких чисел будуть виведені скриптом. Зрозуміло, для більшої гнучкості можна використовувати в циклах обидва оператори break та continue.

Return

Оператор return використовують для повернення значення з функції або обробника події. Розглянемо приклад з функцією:

function sign (n){

if (n > 0) return 1;

if (n < 0) return -1;

return0;

}

alert (sign (-3));

Зверніть увагу: оператор return не тільки вказує, яке значення має повернути функція, але й припиняє виконання подальших операторів у тілі функції.

При використанні в обробниках подій оператор return дозволяє скасувати або не скасовувати дію за замовчуванням, яка вчиняє браузер при виникненні даної події. Скасувати його, проте, можна не для всіх подій. Розглянемо приклад:

<FORM ACTION="newpage.html" METHOD=post>

<INPUT TYPE=submit VALUE="Отправити?" onClick="alert('Не отправім!');

return false;">

</ FORM>

У цьому прикладі без оператора return false користувач побачив би вікно попередження "Не відправимо!" і далі був би перенаправлений на сторінку newpage.html. Оператор ж return false дозволяє скасувати надсилання форми, і користувач лише побачить вікно попередження. Аналогічно, щоб скасувати дію за умовчанням для подій onClick, onKeyDown, onKeyPress, onMouseDown, onMouseUp, onSubmit, onReset, потрібно використовувати return false. Для події onMouseOver з цією ж метою потрібно використовувати оператор return true. Для деяких же подій, наприклад onMouseOut, onLoad, onUnload, скасувати дію за замовчуванням неможливо.