Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Листинг 1.9. Файл Conversion/Conversion. html




<HTML>

<HEAD>

<TITLE>Type conversion sample</TITLE>

</HEAD>

<BODY BGCOLOR=white>

<Hl>Type conversion sample</Hl>

<TABLE>

<SCRIPT LANGUAGE="JavaScript">

<!--

var szTextBuf = "";

szTextBuf = 4 + "&nbsp;- число чотири" + "<BR>";

szBuf2 = (parseInt ("2") + 2) + "&nbsp;- число чотири" +

"<BR>";

document.write(szTextBuf + szBuf2);

//-->

</SCRIPT>

</TABLE>

</BODY>

</HTML>

 

Тут оголошена перемінна szTextBuf і проинициализирована порожнім рядком. Далі привласнена цьому рядку сума числа 4 і двох текстових рядків:

 

szTextBuf = 4 + "&nbsp;- число чотири" + "<BR>";

 

При обчисленні цього вираження значення 4 було автоматично перетворено в текстовий рядок. Подальше підсумовування виконувалося як злиття (конкатенация) трьох текстових рядків.

Символ прогалини, що не розділяє, &nbsp; використовується в документах HTML, щоб після конкатенации рядків прогалина не зникала.

У такому рядку преобразовывается текстовий рядок "2" у чисельне значення за допомогою функції parseInt, додається до результату перетворення число 2, а потім виконується конкатенация з двома текстовими рядками:

 

szBuf2 = (parseint ("2")+2)+"&nbsp;- число чотири" + "<BR>";

 

У результаті перемінна szBuf2 буде містити ту ж самий рядок, що містить і перемінна szTextBuf, у чому неважко переконатися, подивившись на мал. 1.8.

1.3. Оператори мови JavaScript

1.3.1. Унарные оператори

Унарные оператори застосовуються для зміни знака, виконання операції доповнення, инкремента і декремента:

Унарный оператор Призначення

- Зміна знака на протилежний

! Доповнення. Використовується для реверсування значення логічних перемінних

++ Збільшення значення перемінної. Може застосовуватися як префікс перемінної або як її суфікс

-- Зменшення значення перемінної. Може застосовуватися як префікс перемінної або як її суфікс

Приклади використання унарных операторів:

 

i=O; // початкове значення перемінної i дорівнює 0

i++; // значення i дорівнює 1

--i; // значення i знову дорівнює 0

var j=3; // значення перемінної j дорівнює 3

i = -j; // значення перемінної i дорівнює -3

var fYes = true; // значення перемінної fYes дорівнює true

testFlag (! fYes); // функції testFlag передається значення false

 

1.3.2. Бинарные оператори

У мові JavaScript передбачені бинарные оператори для вирахування, додавання, множення, розподіли й обчислення залишку розподілу:

Бинарный оператор Призначення

- Вирахування

+ Додавання

* Множення

/ Розподіл

% Вычисление остатка от деления

Оператори використовуються таким же уявою, як і в мові програмування С, наприклад:

 

i=0; // початкове значення перемінної i дорівнює 0

i = i + 1; // значення i дорівнює 1

var j=9; // значення перемінної j дорівнює 9

i = j / 2; // значення перемінної i дорівнює 4

k = j % 2; // значення перемінної i дорівнює 1

 

1.3.3. Оператори для роботи з окремими бітами

Можна застосовувати оператори, що виконують над бітами перемінних такі логічні операції, як И, АБО, щО ВИКЛЮЧАЄ АБО, НЕ:

Оператор Логічна операція

& И

| АБО

^ щО ВИКЛЮЧАЄ АБО

~ НЕ

Перераховані оператори перед виконанням функцій перетворюють значення перемінних у 32-розрядні цілі числа.

1.3.4. Оператори зсуву

Для виконання операцій зсуву в мові JavaScript передбачено три оператори:

Оператор зсуву Призначення

>> Зсув у праву сторону

<< Зсув у ліву сторону

>>> Зсув у праву сторону з заповненням що звільняються розрядів нулями

Перед використанням операторів зсуву значення перемінної преобразовывается в 32-розрядне ціле число.

Нижче приведений приклад, у якому в перемінну nValue записується значення, отримане в результаті зсуву битий числа 4. Зсув виконується на 2 бита вліво:

 

var nValue;

nValue = 4 << 2;

 

1.3.5. Оператори відношення

Оператори відношення використовуються для порівняння значень перемінних, повертають логічні значення true або false у залежності від результату порівняння і застосовуються в умовних операторах.

Нижче поданий список операторів відношення мови сценаріїв JavaScript:

Оператор відношення Умова, при якому оператор повертає значення true

> Лівий операнд більше правого

>= Лівий операнд більше або дорівнює правому

< Лівий операнд менше правого

<= Лівий операнд менше або дорівнює правому

== Лівий операнд дорівнює правому

!= Лівий операнд не дорівнює правому

У умовних операторах також часто застосовуються логічні оператори:

1.3.6. Логічні оператори

Логічний оператор Опис

|| Оператор АБО. Повертає значення true, коли один з операндов дорівнює true

&& Оператор И. Возвращает значення true, коли обидва операнда рівні true

1.3.7. Оператор присвоювання

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

Нижче перераховані всі можливі комбінації оператора присвоювання й інших операторів:

Оператор Опис

= Просте присвоювання

+= Збільшення чисельного значення або злиття рядків

-= Зменшення чисельного значення

*= Множення

/= Розподіл

%= Вычисление остатка от деления

>>= Зсув управо

>>>= Зсув управо з заповненням що звільняються розрядів нулями

<<= Зсув уліво

| = АБО

&= И

^= щО ВИКЛЮЧАЄ АБО

Приклад застосування оператора += для збільшення вмісту числовий перемінної.

Спочатку вирішимо цю задачу без використання даного оператора. Нижче оголошене перемінна з ім'ям nCounter і привласнене їй початкове значення 1, а потім збільшене це значення на 5:

 

var nCounter = 1;

nCounter = nCounter + 5;

 

Тепер зробимо те ж саме, але по-другому:

 

var nCounter = 1;

nCounter += 5;

 

Як очевидно, другий засіб коротше першого.

Для того щоб зрушити вміст перемінної на трьох розряду вправо, можна скористатися оператором >>=, як це зроблено в такому фрагменті вихідного тексту:

 

nCounter >>= 3;

 

Результат при цьому буде такий же, як і при виконанні такого рядка:

 

nCounter = nCounter >> 3;

 

1.3.8. Умовні оператори

Оператор if-else

У JavaScript передбачений умовний оператор if-else, що дозволяє виконувати різні програмні рядки в залежності від умови.

Загальний вид оператора if-else поданий нижче:

 

if (умова) рядок 1 [else

рядок 2]

 

Частина оператора, виділена квадратними скобками, є необов'язкової. При виконанні цього оператора оцінюється умова, задана в круглих скобках після ключового слова if. Якщо в результаті оцінки умови утворилося логічне значення true, виконується рядок 1. Якщо ж утворилося значення false, те виконується рядок 2 (у тому випадку, коли вона є присутнім).

Оператор if-else може бути вкладеним. Якщо в рядку 1 або рядку 2 необхідно розташувати декілька операторів, їх варто виділити фігурними скобками:

 

if (nYourAge < 18)

{

bAccessDenied = true;

szNextPage = "byel8.html";

}

else if (nYourAge > 99)

{

bAccessDenied = true;

szNextPage = "bye99.html";

}

else

{

bAccessDenied = false;

szNextPage = "welcome. html";

}

 

Спочатку оцінюється умова (nYourAge < 18). Якщо вміст перемінної nYourAge менше 18, перемінної bAccessDenied присвоюється значення true, а перемінної szNextPage - текстовий рядок "byel8.html".

Потім уміст nYourAge дорівнюється з числом 99. Якщо перемінна nYourAge має значення, більше чим 99, у перемінну bAccessDenied записується значення true, а в перемінну szNextPage - текстовий рядок "bye99. html".

Нарешті, якщо жодне з двох умов не було виконано, тобто значення перемінної nYourAge знаходиться в інтервалі від 18 до 99, у перемінну bAccessDenied записується значення false, а в перемінну SzNextPage - текстовий рядок "welcome. html".

Оператор?

Існує також спеціальний тип умовного оператора, що називається оператором?:. Цей оператор у загальному виді записується так:

 

вираження? рядок 1: рядок 2

 

При обчисленні оператора?: спочатку оцінюється логічне вираження, розташоване в лівій частині. Якщо воно дорівнює true, виконується рядок 1, а якщо false - рядок 2.

Нижче приведений приклад використання умовного оператора?: для присвоєння значення перемінної bAccessDenied у залежності від умісту перемінної nYourAge:

 

bAccessDenied =

(nYourAge < 18 || nYourAge > 99)? true: false;

 

Якщо значення перемінної nYourAge знаходиться в інтервалі від 18 до 99. перемінної bAccessDenied присвоюється значення true, а якщо воно не потрапляє в цей інтервал - false. Традиційне рішення цієї задачі за допомогою оператора else-if зайняло б більше місця:

 

if(nYourAge < 18 || nYourAge > 99)

bAccessDenied = true;

else

bAccessDenied = false;

 

У приведених вище прикладах указувалася складова умова:

 

(nYourAge < 18 || nYourAge > 99)

 

Відповідно до таблиці старшинства операторів, що можна знайти нижче в цій главі, оператор || обчислюється після операторів < і >. Для вказівки порядку обчислення можна використовувати скобки:

 

((nYourAge < 18) || (nYourAge > 99))

1.3.9. Оператори циклу

У JavaScript є декілька операторів, призначених для організації циклів.

Оператор for

Загальний вид оператора for поданий нижче:

 

for ([ініціалізація;] [умова;] [ітерація])

{

...

рядки тіла циклу

...

}

 

У області ініціалізації виконується присвоювання початкових значень переменным циклу, припустимо оголошення нових перемінних за допомогою ключового слова var.

Друга область задає умову виходу з циклу. Ця умова оцінюється щораз при проходженні циклу. Якщо в результаті оцінки утворюється логічне значення true, виконуються рядки тіла циклу.

Область ітерації застосовується для зміни значень переменных циклу, наприклад для зменшення лічильника циклу.

Оператор for-in

Оператор for-in призначений для перегляду усіх властивостей об'єкта і записується в такому виді:

 

for (перемінна in об'єкт)

{

...

рядки тіла циклу

...

}

 

Оператор while

Для організації циклів із перевіркою умови їхній завершення перед виконанням ітерації використовується оператор while:

 

while (умова)

{

...

рядки тіла циклу

...

}

 

Якщо в результаті оцінки умови утворюється значення true, те ітерація виконується, якщо false - цикл переривається.

Оператор break

За допомогою оператора break можна перервати виконання циклу, створеного операторами for або while, у будь-якому місці. Наприклад:

 

var i = 0;

while (true)

{

...

i++;

if (i > 10) break;

...

}

 

Оператор continue

Виконання оператора continue усередині циклу for або while призводить до тому, що ітерація переривається, а потім відновляється наново. Цей оператор не перериває циклу.

Нижче приведений приклад використання оператора continue:

 

var i = 0;

while (1 < 100)

{

i++;

if (i < 10)

continue;

...

}

 

Тут фрагмент тіла циклу, відзначений крапкою, буде виконуватися тільки після того, як значення перемінної i стане рівним 10. Коли ж це значення досягне 100, цикл буде завершений.

1.3.10. Інші оператори

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

Оператор Опис

. Доступ до поля об'єкта

[] Індексування масиву

() Скобки

, Кома

Перший із цих операторів застосовується для виклику методів, визначених в об'єктах, а також для доступу до полів об'єктів або, як їх ще називають, до властивостей об'єктів.

Нижче, наприклад, викликаний метод write, визначений в об'єкті document:

 

document. write("Hello, world! ");

 

Квадратні скобки використовуються для індексації масивів аналогічно тому, як це робиться в інших мовах програмування.

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

Оператор "кома" призначена для поділу виражень, що повинні оцінюватися послідовно. Цей прийом називається багатократним обчисленням. Наприклад, у фрагменті вихідного тексту, показаному нижче, на кожній ітерації циклу виконується збільшення вмісту перемінних i і nCycleCount:

 

var i;

var nCycleCount = 0;

for (i = 0; i < 25; i++, nCycleCount++)

{

...

}

 

1.3.11. Старшинство операторів JavaScript

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

Першими обчислюються оператори, розташовані на початку таблиці старшинства:

Оператори Опис

. [] () Доступ до поля, індексування в масиві, виклик функції

++ -- - ~! Унарные оператори

* / % Множення, розподіл, обчислення залишку від розподілу

+ - + Додавання, вирахування, злиття текстових рядків

<< >> >>> Бітові зсуви

< <= > >= Менше, менше або дорівнює, більше, більше або дорівнює

==!= Рівність, нерівність

& Логічна операція И

^ Логічна операція щО ВИКЛЮЧАЄ АБО

| Логічна операція АБО

&& Логічний оператор відношення И

|| Логічний оператор відношення АБО

?: Умовний оператор

= += -= *= /= %= Присвоювання

>>= >>>= <<= |=

&= ^=

, Багатократне обчислення

 

1.3.12. Функції в мові сценаріїв JavaScript

Можливо оформити фрагменти вихідного тексту у виді функції, викликаючи цю функцію в міру необхідності з різноманітних місць сценарію JavaScript.

Звичайно функції визначаються в поділі заголовка документа HTML, відзначеного операторами <HEAD> і </HEAD>. Функція повинна бути визначена перед викликом.

Загальний вид визначення функції поданий нижче:

 

function ім'я([параметр 1] [,параметр 2] [...,параметр N])

...

рядки тіла функції

...

[return значення]

}

 

Всі параметри передаються функції за значенням. Тому функція не може змінити вміст перемінних, переданих їй у якості параметрів.

За допомогою ключового слова return функція може повернути значення.

1.4. Приклади використання операторів циклу

Три приклади показують використання операторів циклу for і while. У прикладах сценарій відображає у вікні документа десять рядків Hello, world!.

Вихідний текст першого сценарію поданий у листинге 1.10.

 




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 396; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.112 сек.