Об’єктна модель мови JavaScript

Javascript як мова програмування, заснована на об'єктах: і мовні засоби, і можливості середовища представляються об'єктами. Структура програм на мові Javascript. Декларація змінних та сфер їх впливу. Типи даних та їх використання. Пріоритети операцій.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 12.12.2010
Размер файла 51,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

39

Вступ

Мова програмування JavaScript була розроблена Бренданом Ейком (Brendan Eich) в Netscape Communications як мова сценаріїв для оглядачів Netscape Navigator, починаючи з версії 2.0. В подальшому до розвитку цієї мови підключилася корпорація Microsoft, чиї Веб-оглядачі Internet Explorer підтримують JavaScript, починаючи з версії 3.0. Версія Microsoft отримала назву JScipt, оскільки JavaScript є зареєстрованою маркою фірми Netscape. У 1996 р. ECMA прийняла рішення про стандартизацію цієї мови, і в червні 1997 р. була прийнята перша версія стандарту під назвою ECMAScript (ECMA-262). У квітні 1998 р. цей стандарт був прийнятий ISO в якості міжнародного під номером ISO / IEC 16262. Робота грунтується на третій версії стандарту ECMA (грудень 1999 р.), але використовується назва JavaScript, а не ECMAScript з двох причин:

1. Ця назва є історично першою, і під нею дана мова найбільш відома широкому колу користувачів.

2. Відповідний тип MIME, а саме «text / javascript», розпізнається усіма оглядачами, які підтримують сценарії цією мовою, на відміну від JScript або ECMAScript. JavaScript - це об'єктно-орієнтована мова програмування, призначена для написання сценаріїв, що працюють як на стороні клієнта, так і на стороні сервера. Тому вона не є «повноцінною» мовою програмування, а орієнтована на використання можливостей того середовища, в якому сценарії виконуються. Браузер, який працює на комп'ютері-клієнті, забезпечує середовище, в якому JavaScript має доступ до об'єктів, які являють собою вікна, меню, діалоги, текстові області, фрейми, куки і введення-виведення в Веб-сторінку. Крім того, оглядач дозволяє приєднати сценарії на мові JavaScript до таких подій, як завантаження та вивантаження сторінок і графічних образів, натиснення клавіш і рух миші, вибір тексту і пересилання форм. При цьому програмний код сценаріїв тільки реагує на події і тому не має потреби в головній програмі. Набір об'єктів, що надаються оглядачем, відомий під назвою Document Object Model (DOM). Веб-сервер забезпечує інше середовище, в якому об'єктами є запити до баз даних, клієнти, файли і механізми блокування та обміну даними. Спільне використання сценаріїв і на стороні клієнта, і на стороні сервера дозволяє розподілити обчислення між ними і забезпечити бажаний для користувача інтерфейс для Веб-додатків.

Тема даного дослідження є досить актуальною, адже при розробці сучасного сайта не завжди можна обійтись лише можливостями мови розмітки HTML. З метою надання веб-сторінкам привабливого вигляду і створення у відвідувача відчуття взаємодії із сайтом використовують додаткові можливості, доступні при використанні Java-скриптів. Діапазон їх застосування досить широкий: це і елементи інтерактивності, які можуть містити складні процедури обробки, і просто декоративні елементи, які надають привабливості сайту. До того ж використання JAVA-Script дозволяє різноманітити і «пожвавити» представлення інформації.

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

1. Короткий опис

Javascript - це мова програмування, заснована на об'єктах: і мовні засоби, і можливості середовища представляються об'єктами, а сценарій (програма) на Javascript - це набір взаємодіючих об'єктів. Об'єкт Javascript - це неврегульований набір властивостей, кожна з яких має нуль або більше атрибутів, які визначають, як ця властивість може використовуватися. Javascript містить декілька вбудованих об'єктів, таких, як Global, Object, Error Function, Array, String, Boolean, Number, Math, Date, Regexp. Крім того, Javascript містить набір вбудованих операцій, які, строго кажучи, не обов'язково є функціями або методами, а також набір вбудованих операторів, керівників логікою виконання програм. Синтаксис Javascript в основному відповідає синтаксису мови Java, але спрощений порівняно з ним, щоб зробити мову сценаріїв легкою для вивчення. Так, наприклад, декларація змінної не містить її типу, властивості також не мають типів а декларація функції може стояти в тексті програми після її виклику. Мова Javascript, на відміну від мов Java і C++, не містить класів об'єктів в строгому сенсі слова. Замість цього вона підтримує конструктори, які створюють об'єкти шляхом виділення для них пам'яті і ініціалізації всіх або деяких їх властивостей. Всі конструктори є об'єктами, але не всі об'єкти є конструкторами. Кожен конструктор має властивість prototype, яке використовується для реалізації спадкоємства заснованого на прототипах, і властивостей, що розділяються. Javascript підтримує спадкоємство, засноване на прототипах. З кожним конструктором зв'язаний відповідний прототип, і кожен об'єкт, створений конструктором, містить неявне посилання на цей прототип (званий прототипом об'єкту). Прототип, в свою черга, може містити посилання на свій прототип і так далі. Так утворюється ланцюжок прототипів. Посилання на властивість об'єкту - це посилання на перший прототип в ланцюжку прототипів об'єкту, який містить властивість з даним ім'ям. Іншими словами, якщо даний об'єкт має властивість з даним ім'ям, то використовується посилання на цю властивість; якщо немає, то досліджується прототип цього об'єкту і так далі У об'єктно-орієнтованих мовах, заснованих на класах об'єктів, поточний стан реалізується екземплярами класів, методи реалізуються класами, а спадкоємство - структурою і поведінкою. У Javascript поточний стан і методи реалізуються об'єктами а структура і поведінка успадковуються. Всі об'єкти, які явно містять властивість, яка містить їх прототип, розділяють цю властивість і її значення. На відміну від мов заснованих на класах, властивості можуть динамічно додаватися до об'єктів шляхом привласнення ним значень. Зокрема, конструктори не зобов'язані привласнювати значення всім або деяким властивостям створюваного об'єкту. Властивості - це контейнери, які містять інші об'єкти, примітивні значення і методи. Примітивне значення - це елемент будь-якого з вбудованих типів: Undefined, Null, Boolean, Number і String; об'єкт - це елемент ще одного вбудованого типу Object; метод - функція, що асоціюється з об'єктом через властивість.

2. Основи мови

2.1 Структура програм на мові Javascript

Програма (сценарій) на мові Javascript - це текст, що складається з операторів, блоків, тобто взаємозв'язаних наборів операторів, і коментарів. Оператори можуть містити змінні, константи і вирази.

function convert(inches) {

cm = inches * 2.54; // Цих двох операторів поміщено в блок.

meters = inches / 39.37;

} convert(inches); // Ці два оператори не утворюють блоку.

km = meters / 1000;

Кожен оператор Javascript починається з нового рядка (що не обов'язково) і закінчується крапкою з комою (що також не обов'язково, якщо оператор є останнім в рядку).

Блок - це набір операторів, ув'язнений у фігурні дужки {}.

2.2 Коментарі

Коментарі в Javascript можуть бути однорядковими і багаторядковими. Однорядкові коментарі починаються з символів // і продовжуються до кінця поточного рядка, як показано в приведеному вище прикладі. Багаторядкові коментарі полягають в маркери /* і */, наприклад:

/* Коментар

ще коментар */

2.3 Зарезервовані слова

Наступні імена є ключовими словами мови Javascript і не можуть вживатися як ідентифікатори:

break

delete

function

return

Typeof

case

do

if

switch

Var

catch

else

in

this

Void

continue

finally

instanceof

throw

While

default

for

new

try

With

Наступні імена є ключовими словами в пропонованих розширеннях мови Javascript і також не повинні уживатися як ідентифікатори в цілях сумісності з майбутніми версіями мови:

absract

double

implements

private

throws

boolean

enum

import

protected

transient

byte

export

int

public

volatile

char

extends

interface

short

class

final

long

static

const

float

native

super

debugger

goto

package

synchronized

2.4 Ідентифікатори

Ідентифікатори використовуються в Javascript як імена змінних. Вони можуть починатися з латинської букви, символу «$» (знак долара) або символу «_» (підкреслення) і повинні складатися з латинських букв, цифр і символів «$» і «_». Ідентифікатори не можуть співпадати із зарезервованими словами. Два ідентифікатори вважаються рівними, якщо вони текстуально співпадають; це означає, що Javascript проводить відмінність між рядковими і прописними буквами.

2.5 Декларація змінних

Змінні використовуються як символічні імена, що приймають різні значення. Імена змінних задаються ідентифікаторами. Змінна створюється у момент її декларації. Javascript дозволяє декларувати змінну двома способами:

* За допомогою ключового слова var, наприклад, var x; або var x = 21;.

* Просто присвоєнням змінній значення, наприклад x = 21;.

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

var text;

if (text == undefined)

document.write («Текст не заданий»);

else

document.write («Текст:» + text);

В даному прикладі значення змінної text не визначене, тому буде виконаний перший оператор document.write.

У найзагальнішому вигляді декларація змінних має вигляд:

var ідентифікатор[=ініціалізатор]? [, ідентифікатор[=ініціалізатор]?]?

Приклад:

var а = 0, b, з = «текст», x, у = false;

2.6 Область дії змінних

Область дії змінної визначається положенням її декларації в тексті програми. Існують три типи виконуваного коду Javascript, що називаються контекстом виконання:

* Глобальний контекст, тобто початковий текст сценаріїв, не включаючи тіла функцій.

* Локальний контекст, тобто початковий текст сценаріїв, що є тілом функції, а також аргумент конструктора вбудованого об'єкту Function. Точніше кажучи, якщо останнім параметром конструктора Function є рядок тексту, то він інтерпретується як тіло функції.

* Eval-контекст, тобто аргумент методу eval. Якщо параметром методу eval є рядок тексту, то він інтерпретується як програма на мові Javascript, що має той же контекст, в якому був викликаний цей метод. Іншими словами, будь-яка змінна, що декларує поза тілом всіх функцій, є глобальною і доступна усюди в тексті даної програми. Змінна, що декларує в тілі функції, є локальною і доступна тільки усередині тіла цієї функції.

Для декларації глобальних змінних ключове слово var не обов'язково. Проте, воно обов'язкове при декларації локальних змінних.

2.7 Константи

Константи використовуються для завдання постійних значень. У Javascript є декілька типів констант, відповідних його вбудованим типам, а саме:

* нульова константа null типу Null;

* логічні константи true (істина) і false (брехня) типу Boolean;

* строкові константи типу String, наприклад, «Привіт всім!»;

* числові константи типу Number, наприклад, 21 або 3.1415926.

2.8 Типи даних

Мову Javascript містить шість типів даних: Undefined (невизначений), Null (нульовий), Boolean (логічний), String (строковий), Number (числовий) і Object (об'єктний). Це відносно невелика кількість типів дозволяє, проте, створювати повноцінні сценарії для виконання багатьох функцій.

Тип Undefined (невизначений)

Цей тип складається з єдиного значення undefined. Це значення, яке приймає змінна, яка оголошена в програмі, але якій ще не присвоєно ніяке значення.

Тип Null (нулевий)

Цей тип складається з єдиного значення null. Це значення означає нулеве, порожнє або неіснуюче посилання.

Тип Boolean (логічний)

Цей тип складається рівно з двох логічних значень: true (істина) і false (брехня).

Тип String (строковий)

Цей тип складається зі всіх можливих текстових рядків. Кожен рядок є впорядкованим масивом з нуля або більше символів Unicode (тобто 16-бітових цілих чисел без знаку), що називаються елементами рядка. Елементи рядка нумеруються, починаючи з нуля. Довжина рядка - це кількість елементів в ньому; порожній рядок складається з нуля елементів.

Тип Number (числовий)

Цей тип має рівно 18437736874454810627 (тобто 264 - 253 + 3) значень, відповідних 64-бітовому формату плаваючих чисел подвійної точності IEEE 754 з тим єдиним виключенням, що 9007199254740990 (тобто 253 - 2) різних значень «Не число» даного формату представляються в Javascript одним значенням NAN. Ще два спеціальні значення - це додатна нескінченність і від'ємна нескінченність, яким в Javascript відповідають вирази +Infinity (або просто Inifinity) і - infinity. Відзначимо також, що в даному форматі розрізняються додатний нуль (+0 або 0) і від'ємний нуль (-0).

Тип Object (об'єктний)

Значенням цього типу є об'єкти. Об'єкт - це неврегульований набір властивостей.

2.9 Перетворення типів

Javascript - слабо типізована мова. Це означає, що в декларації змінної ми не вказуємо її тип і надалі можемо присвоювати їй значення будь-яких типів. Виконуюча система Javascript сама виконує автоматичне перетворення типів даних в міру необхідності. Для явного перетворення типів використовуються методи Boolean, Number, Object і String.

2.10 Приклади неявних перетворень

У виразах, що сполучають числові і строкові значення операцією +, Javascript перетворить числа в рядки, наприклад:

x = «Відповідь рівна» + 21 // повертає «Відповідь рівний 21»

у = 21 + «- ось відповідь» // повертає «21 - ось відповідь»

У решті випадків Javascript намагається перетворити рядок в число, наприклад:

а = «21» - 1 // повертає 20

b = «21» + 1 // повертає 21

2.11 Вирази і операції

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

Відповідно всі вирази Javascript підрозділяються на арифметичні, строкові, логічні і об'єктні. Існує два типи виразів: ті, які привласнюють значення деякої змінної (наприклад, x = 2 + 3), і ті, які просто мають якесь значення (наприклад, 2 + 3).

Перший тип виразів називається операціями привласнення. Всі операції в Javascript підрозділяються на наступні:

* операції порівняння;

* арифметичні операції;

* бітові операції;

* логічні операції;

* строкові операції;

* операції присвоювання;

* інші операції.

2.12 Пріоритети операцій

Операція

[] () ++ - - ~! delete new typeof void

* /%

+ -

<< >> >>>

< <= > >= instanceof

==!= ===!==

&

^

|

&&

||

?:

= += -= *= /=%= <<= >>= >>>= &= ^= |=

,

2.13 Оператори Javascript

Управління послідовністю дій в ході виконання сценарію здійснюється за допомогою операторів. Javascript містить стандартний набір операторів, успадкований від мов C++ і Java, а саме:

* умовний оператор if.else;

* оператор вибору switch;

* оператори циклу for, while, do.while, break і continue;

* оператор ітерації for.in;

* оператор вказівки об'єкту with;

* оператори обробки виключень try.catch і throw;

* оператори декларації функцій function і повернення з функції return.

* порожній оператор;

* оператор декларації змінних var.

Будь-який вираз Javascript також є оператором.

2.14 Декларація функції

Функція в Javascript - це набір операторів, що виконують певне завдання. Декларація функції має вигляд:

function ім'я (аргументи?) {

оператори

}

Приклад:

function cube(number) {

return number * number * number;}

2.15 Виклик функції

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

var x = cube(5);

В результаті змінна x набуде значення 125.

У Javascript діють наступні правила передачі аргументів функції:

* Аргументи примітивних типів передаються функції за значенням. Іншими словами, формальним аргументам присвоюються значення фактичних аргументів на момент виклику і, якщо навіть оператори в тілі функції змінять значення якого-небудь аргументу, то ця зміна не торкнеться змінної, чиє значення передавалося як аргумент.

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

function setbrowser(browser) {

browser.name = «Internet Explorer»;

browser.version = «5.5»;

}

var mybrowser = {name: «Netscape Navigator», version: «4.7»};

var x = mybrowser.name; // x рівне «Netscape Navigator»

setbrowser(mybrowser); // об'єкт mybrowser передається функції

var у = mybrowser.name; // у рівне «Internet Explorer»

2.16 Рекурсивні функції

Приведемо приклад функції, що обчислює факторіал числа (факторіал числа n рівний 1 * 2 *… * n):

function factorial(n) {

if (n <= 1)

return 1;

else

return (n * factorial (n-1));

}

2.17 Об'єкт arguments

При вході в тіло функції створюється локальний об'єкт arguments, який має наступні властивості:

* Властивість callee з атрибутами {Dontenum}. Початковим значенням цієї властивості є виконуваний в даний момент об'єкт Function. Цю властивість забезпечує можливість рекурсивного виклику безіменних функцій.

* Властивість length з атрибутами {Dontenum}. Початковим значенням цієї властивості є кількість фактичних аргументів, переданих функції при її виклику.

* Масив значень фактичних аргументів функції. Для доступу до значень масиву використовується синтаксис:

функція.arguments[i]

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

function initarray() {

this.length = initarray.arguments.length;

for (var i = 0; i < this.length; i++)

this[i]= initarray.arguments[i];

}

var myfriends = new initarray («Михайло», «Максим», «Сергій», «Леонід»);

3. Об'єкти

Javascript - це мова програмування, заснована на об'єктах. Всі об'єкти, доступні сценарію на мові Javascript, підрозділяються на три групи:

* вбудовані об'єкти виконуючої системи;

* об'єкти середовища, в якому виконується сценарій (тобто або об'єкти клієнта, або об'єкти сервера);

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

Об'єкт Javascript - це неврегульований набір властивостей. Властивість, що є функцією, називається методом. Для доступу до властивості об'єкту використовується синтаксис:

Ім'я_об'єкта. Ім'я_властивості

Якщо назва властивості задана текстовим рядком, то доступ до властивості можливий і так:

Ім'я_обєкта [«ім'я_властивості»]

Цей синтаксис використовується оператором ітерації for.in.

Кожна властивість складається з назви, значення і набору наступних атрибутів:

Атрибут

Опис

DontEnum

Властивість не повинна

DontDelete

Спроба програмно видалити дану властивість буде проігнорована.

ReadOnly

Незмінна властивість. Спроба програмно змінити дану властивість буде проігнорована.

Нова властивість об'єкту створюється просто привласненням йому значення. Наприклад:

mybrowser.name = «Microsoft Internet Explorer»;

mybrowser.version = «5.5»;

У таких властивостей, створеним користувачем, всі перераховані вище атрибути скинуті в false.

Існує два способи створення нових об'єктів в Javascript, а саме:

1. Використання ініціалізатора об'єкту.

2. Використання конструктора об'єктів.

3.1 Ініціалізатор

Створення об'єктів з допомогою ініціалізатора дозволяє одночасно створити об'єкт і присвоїти значення всім або частини його властивостей. Він застосовується в тих випадках, коли ми створюємо об'єкт з унікальним набором властивостей. Ініціалізатор об'єкту має вигляд:

{властивість:значення [, властивість:значення]?}

Тут властивість - ідентифікатор, що задає ім'я властивості, а значення - вираз, що задає значення цієї властивості. Наприклад:

var mybrowser = {name: «Microsoft Internet Explorer», version: «5.5»};

Додамо ще одну властивість об'єкту mybrowser, яка називається options і сама є об'єктом:

var mybrowser = {name: «Microsoft Internet Explorer», version: «5.5»

options: {enablejava: true, enablecookies: false};

3.2 Конструктор

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

· ім'я функції задає ім'я створюваного класу об'єктів;

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

Наприклад:

function Browser (name, version) {

this.name = name;

this.version = version;

}

Тепер для створення нових об'єктів класу Browser досить викликати цей конструктор в операції new, наприклад:

var mybrowser = new Browser («Microsoft Internet Explorer», «5.5»);

Або, наприклад, з властивістю options об'єкту Browser, яка сама є об'єктом:

function Options (enablejava, enablecookies) {

this.enableJava = enablejava;

this.enableCookies = enablecookies;

}

function Browser (name, version, options) {

this.name = name;

this.version = version;

this.options = options;

}

var myoptions = new Options (true, false);

var mybrowser = new Browser («Microsoft Internet Explorer», «5.5», myoptions);

Для доступу до властивостей властивості options використовується синтаксис:

mybrowser.options.enableJava.

3.3 Методи

Оскільки методи є різновидом властивостей, вони створюються так само, як описано вище. Наприклад, якщо додати до конструктора об'єктів Browser метод aboutbrowser:

function showbrowser() {

document.write («Оглядач:» + this.name + " " + this.version);

}

function Browser (name, version) {

this.name = name;

this.version = version;

this.aboutBrowser = showbrowser;

}

Надалі викликати цей метод так:

mybrowser.aboutBrowser().

Конструктор можна записати і коротше, використовуючи вкладене визначення функції:

function Browser (name, version) {

this.name = name;

this.version = version;

this.aboutBrowser = function() {

document.write («Оглядач:» + this.name + " " + this.version);

}

}

3.4 Зміна об'єкту

Нехай потрібно в процесі виконання сценарію додати нову властивість security класу об'єктів Options (що важливо - класу об'єктів, а не окремому його представникові myoptions). Для цього використовується властивість prototype об'єкту Function:

Options.prototype.security = null;

Тепер можна присвоїти значення новій властивості об'єкту:

mybrowser.options.security = «Висока»;

Для видалення властивостей об'єктів використовується операція delete, наприклад:

delete Options.prototype.security;

Javascript дозволяє нам задати новий прототип для класу призначених для користувача об'єктів (прототипи вбудованих об'єктів доступні тільки для читання). Розглянемо такий приклад:

function Circle(radius) {

this.radius = radius;

}

Circle.prototype.area = function() {

return Math.PI * this.radius * this.radius;

}

function Fullcircle (x, у, radius) {

this.x = x;

this.y = у;

this.radius = radius;

}

Fullcircle.prototype = Circle.prototype;

var mycircle = new Fullcircle (0, 0, 1);

document.write (mycircle.area());

В даному прикладі спочатку визначається клас об'єктів Circle з властивістю radius і методом area, що повертає площу круга. Потім визначається клас Fullcircle, конструктор якого додатково містить координати центру кола. Потім указується, що він успадковує прототип клас Circle. Після цього створюється об'єкт mycircle і викликають його метод area, який він успадкував від прототипу класу Circle.

3.5 Видалення об'єктів

Видалити раніше створений об'єкт можна за допомогою операції delete, наприклад:

delete mybrowser;

4. Вбудовані об'єкти

Javascript містить глобальний об'єкт, який є середовищем його виконуючої системи а також наступні вбудовані об'єкти:

Об'єкт

Опис

Об'єкт

Опис

Array

Масиви

Math

Математичні функції і константи

Boolean

Логічні об'єкти

Number

Числові об'єкти

Date

Дата і час

Object

Прототип інших об'єктів

Error

Виключення

RegExp

Регулярні вирази

Function

Функції

String

Рядкові об'єкти

4.1 Глобальний об'єкт

Глобальний об'єкт (Global) створюється виконуючою системою Javascript перед початком виконань сценарію. Це єдиний об'єкт, який не має імені, і тому доступ до його властивостям і методам здійснюється без імені об'єкту. З цієї причини їх іноді називають властивостями і методами верхнього рівня.

Властивості глобального об'єкту

Властивість

Опис

Infinity

Спеціальне значення «нескінченність»

NaN

Спеціальне значення «не число»

undefined

Невизначеність

Методи глобального об'єкту

Метод

Опис

Boolean

Перетворює об'єкт в логічне значення.

decodeURI

Декодує URI

decodeURIComponent

Декодує компонент URI

encodeURI

Кодує URI

encodeURIComponent

Кодує компонент URI

escape

Перетворює рядок в шістнадцятизначний код Unicode

eval

Виконує рядок кода JavaScrip

isFinite

Повертає true, якщо аргумент є кінцевим числом

isNaN

Повертає true, якщо аргумент рівний NaN

Number

Перетворює об'єкт в число.

Object

Перетворює значення в об'єкт.

parseFloat

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

parseInt

Перетворює рядок в ціле число

String

Перетворює об'єкт в рядок

unescape

Перетворює шістнадцятизначний код Unicode в рядок

4.2 Об'єкт Object

Об'єкт Object - це примітивний об'єктний тип, похідними якого є всі решта об'єктів мови Javascript. Він має дві форми конструктора:

new Object()

new Object(значення)

Тут значення - будь-який вираз, щ задає примітивне значення об'єкту. Якщо воно не вказано, то створюється порожній об'єкт. Для створення порожнього об'єкту можна також використовувати ініціалізатор об'єкту:

{}

Приклади:

var а = new Object(); // порожній об'єкт

var b = {; // те ж саме

var з = new Object(true); // примітивне значення об'єкту true

Об'єкт Object міститься у всіх об'єктах Javascript, тому всі його методи і властивості їм доступні. Методи даного об'єкту можуть бути перевизначені в призначених для користувача об'єктах.

Властивості об'єкту Object

Властивість

Опис

constructor

Конструктор, який створив об'єкт.

prototype

Посилання на прототип класу об'єктів.

Методи об'єкту Object

Метод

Опис

hasownproperty

Перевіряє наявність заданої властивості

isprototypeof

Перевіряє, чи є об'єкт прототипом даного об'єкту

propertyisenumerable

Перевіряє наявність заданої ітеріруємого властивості.

tolocalestring

Перетворить об'єкт в рядок з урахуванням формату операційної системи.

tostring

Перетворить об'єкт в рядок.

valueof

Повертає примітивне значення об'єкту.

4.3 Об'єкт Function

Об'єкт Function - це прототип функціональних об'єктів. Він може бути створений двома способами:

function ім'я (аргументи?) {

оператори}

var ім'я = new Function ([аргументи]? оператори)

Перший варіант - це декларація функції. Сама по собі декларація функції не створює функціонального об'єкту; його створення відбувається у момент виклику цієї функції. Другий варіант - це виклик конструктора об'єкту Function, при якому функціональний об'єкт створюється явно. В цьому випадку і аргументи, і оператори повинні бути текстовими рядками.

Наприклад, для створення функції, що повертає суму двох аргументів, можна використовувати наступні два варіанти:

function sum (а, b) {

return а + b;

}

var sum = new Function («, «, «return а + b»);

У обох випадках виклик функції sum здійснюється оператором типу sum (3, 5).

4.4 Об'єкт Boolean

Об'єкт Boolean - це об'єктна реалізація примітивного булевого значення. Його конструктор має вигляд:

new Boolean (значення?)

Тут значення - будь-який логічний вираз, задаючий примітивне значення об'єкту. Якщо воно не вказане, то примітивне значення об'єкту рівне false.

Властивості об'єкту Boolean

Властивість

Опис

constructor

Конструктор, який створив об'єкт

prototype

Посилання на прототип класу об'єктів

Методи об'єкту Boolean

Метод

Опис

tostring

Перетворює об'єкт в рядок

valueof

Повертає примітивне значення об'єкту

4.5 Об'єкт Number

Об'єкт Number - це об'єктна реалізація примітивного числового значення. Його конструктор має вигляд:

new Number (значення?)

Тут значення - будь-який числовий вираз, що задає примітивне значення об'єкту. Якщо воно не задане, то примітивне значення об'єкту рівне +0.

Властивості об'єкту Number

Властивість

Опис

constructor

Конструктор, який створив об'єкт

Max_value

Найбільше позитивне значення числового типу

Min_value

Найменше позитивне значення числового типу

NAN

Спеціальне значення «Не число»

Negative_infinity

Спеціальне значення «Від'ємна нескінченність»

Positive_infinity

Спеціальне значення «Додатна нескінченність»

prototype

Посилання на прототип класу об'єктів

Методи об'єкту Number

Метод

Опис

toexponential

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

tofixed

Перетворює примітивне значення об'єкту в рядок, що містить число з фіксованою комою

tolocalestring

Перетворює примітивне значення об'єкту в рядок у форматі операційної системи.

toprecision

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

tostring

Перетворює примітивне значення об'єкту в рядок

valueof

Повертає примітивне значення об'єкту

4.6 Об'єкт String

Об'єкт String - це об'єктна реалізація примітивного строкового значення. Його конструктор має вигляд:

new String (значення?)

Тут значення - будь-який строковий вираз, що задає примітивне значення об'єкту. Якщо воно не вказане, то примітивне значення об'єкту рівне «». Всі властивості і методи строкових об'єктів застосовні і до строкових констант. У цьому випадку виконуюча система створює тимчасовий строковий об'єкт, із значенням, заданим константою, виконує запитану дію, видаляє тимчасовий об'єкт і повертає результат. Крім методів, передбачених стандартом Ecmascript, оглядачі Microscape традиційно підтримують декілька методів об'єкту String, що забезпечують висновок рядки в теги HTML. Ці методи також описані нижче.

Властивості об'єкту String

Властивість

Опис

constructor

Конструктор, який створив об'єкт

Length

Кількість символів в рядку

prototype

Посилання на прототип класу об'єктів

Стандартні методи об'єкту String

Метод

Опис

charat.

Повертає символ, що знаходиться в даній позиції рядка

charcodeat

Повертає код символу, що знаходиться в даній позиції рядка

concat

Повертає конкатенацію рядків

fromcharcode.

Створює рядок з символів, заданих кодами Unicode

Indexof

Повертає позицію першого входження заданого підрядка.

lastindexof

Повертає позицію останнього входження заданого підрядка.

localecompare

Порівнює два рядки з урахуванням мови операційної системи.

match

Зіставляє рядок з регулярним виразом.

replace

Зіставляє рядок з регулярним виразом і замінює знайдений підрядок новим підрядком

search

Шукає зіставлення рядка з регулярним виразом

slice

Витягує частину рядка і повертає новий рядок.

split

Розбиває рядок на масив підрядків.

substr

Повертає підрядок, заданий позицією і довжиною.

substring

Повертає підрядок, заданий початковою і кінцевою позиціями

tolocalelowercase

Перетворить всі букви рядка в рядкових з урахуванням мови операційної системи

tolocaleuppercase

Перетворить всі букви рядка в прописних з урахуванням мови операційної системи

tolowercase

Перетворить всі букви рядка в рядкових

tostring

Перетворить об'єкт в рядок

touppercase

Перетворить всі букви рядка в прописних

valueof

Повертає примітивне значення об'єкту

Нестандартні методи об'єкту String

Метод

Опис

anchor

Створює закладку HTML (<A Name= «імя»>.</A>)

big

Укладає рядок в теги <BIG>.</BIG>

blink

Укладає рядок в теги <BLINK>.</BLINK>

bold

Укладає рядок в теги <B>.</B>

fixed

Укладає рядок в теги <TT>.</TT>

fontcolor

Укладає рядок в теги <FONT Color= «цвет»>.</FONT>

fontsize

Укладає рядок в теги <FONT Size= «размер»>.</FONT>

italics

Укладає рядок в теги <I>.</I>

link

Створює гіперпосилання HTML (<A Href= «uri»>.</A>)

small

Укладає рядок в теги <SMALL>.</SMALL>

strike

Укладає рядок в теги <STRIKE>.</STRIKE>

sub

Укладає рядок в теги <SUB>.</SUB>

sup

Укладає рядок в теги <SUP>.</SUP>

4.7 Об'єкт Array

Об'єкт Array використовується для створення масивів, тобто впорядкованих наборів елементів будь-якого типу. Доступ до елементу масиву проводиться по його номеру в масиві званому індексом елементу; позначається i-й елемент масиву а як а[i]. Елементи масиву нумеруються з нуля. Для створення масивів використовуються наступні конструктори масивів:

new Array()

new Array(розмір)

new Array (елемент0, елемент1., елементn)

Тут розмір - будь-який числовий вираз, задаючий кількість елементів в масиві; елемент0, елемент1,…, елементn - будь-які вирази. Перший конструктор створює порожній масив, другий, - масив з розмір елементів, третій створює масив з N+1 елементів і привласнює їм відповідні значення. Якщо розмір не є числом без знаку, то створюється масив з єдиним елементом, що має це значення. Крім того, масив може бути створений за допомогою ініціалізатора масиву:

[елемент0, елемент1., елементn]

Приклади:

var а = new Array(5); // масив з 5 елементів

var b = new Array («рядок»); // масив з 1 елементу «рядок»

var з = new Array (1, 2, 3); // масив з 3 елементів: 1, 2 і 3

var d = [«1», «2», «3»]; // те ж саме

4.8 Об'єкт Date

Об'єкт Date призначений для маніпуляцій з датами і часом. Його примітивним значенням є число, рівне кількості мілісекунд щодо базового часу рівного півночі 1 січня 1970 р. по Грінвічському меридіану (UTC, Universal Coordinated Time). Якщо це значення рівне NAN, то воно вважається невизначеним. День складається з 86400000 мілісекунд. Діапазон значень Date від -100000000 днів до 100000000 днів щодо базового часу, що приблизно рівний 285616 років в кожну сторону відліку. Для створення об'єктів Date використовуються наступні конструктори:

new Date()

new Date(число)

new Date(рядок)

new Date (рік, місяць, день [, часи [, мінути [, секунди [, мс]?]?]?]?)

Тут:

* число - числовий вираз, задаючий примітивне значення об'єкту в мілісекундах;

* рядок - строковий вираз, задаючий дату і час у форматі, описаному в методі parse;

* рік - числовий вираз, задаючий повний номер року (наприклад, 1988, а не 88);

* місяць - числовий вираз, задаючий номер місяця (0 = січень, 1 = лютий., 11 = грудень);

* день - числовий вираз, задаючий номер для в місяці від 1 до 31;

* годинник - необов'язковий числовий вираз, задаючий номер години від 0 до 23;

* хвилини - необов'язковий числовий вираз, задаючий номер хвилини від 0 до 59;

* секунди - необов'язковий числовий вираз, задаючий номер секунди від 0 до 59;

* мс - необов'язковий числовий вираз, задаючий номер мілісекунди від 0 до 999.

Перший конструктор створює об'єкт Date з поточною датою і часом за місцевим часом. Решта конструкторів створює об'єкт Date з датою і часом, заданими аргументами конструктора. Приклади:

var а = new Date(); // поточна дата і час

var b = new Date («May 21, 1958 10:15 AM»); // задана дата і час

var з = new Date (1958, 4, 21, 10, 15); // те ж саме в іншому форматі

4.9 Об'єкт Error

Об'єкти Error створюються при виникненні помилок в процесі виконання сценарію і містять інформацію про помилку, яка використовується операторами обробки виключень. Всі виключення підрозділяються на системні і призначені для користувача. Системні виключення генеруються виконуючою системою в процесі виконання сценарію призначені для користувача - самим сценарієм за допомогою оператора throw. Об'єкти Error відповідно також можуть бути створені виконуючою системою або сценарієм. Конструктор призначеного для користувача об'єкту Error має вид

NewError(message), де message - текст повідомлення про помилку.

4.10 Об'єкт Math

Об'єкт Math забезпечує доступ до різних математичних констант і функцій. Він існує в єдиному екземплярі і тому не має конструктора. Відповідно всі його властивості і методи є статичними і повинні викликатися зверненням до об'єкту Math, а не його реалізацій. Прототипу об'єкт Math немає.

Властивості об'єкту Math

Властивість

Опис

E

Основа натуральних логарифмів e

Ln10

Число ln 10

Ln2

Число ln 2

Log10e

Число lg e

Log2e

Число log2e

PI

Число

Sqrt1_2

Квадратний корінь з 1/2

Sqrt2

Квадратний корінь з 2

Методи об'єкту Math

abs

Повертає абсолютну величину аргументу

acos

Повертає арккосинус аргументу

asin

Повертає арксинус аргументу

atan

Повертає арктангенс аргументу

atan2

Повертає арктангенс приватного від ділення аргументів

ceil

Повертає найменше ціле число, більше або рівніше аргументу

cos

Повертає косинус аргументу

exp

Повертає експоненту аргументу

floor

Повертає найбільше ціле число, менше або рівніше аргументу

log

Повертає натуральний логарифм аргументу

max

Повертає найбільший з аргументів

min

Повертає найменший з аргументів

pow

Підносить перший аргумент до ступеня, заданого другим

random

Генерує випадкове число в діапазоні від 0 до 1

round

Округляє аргумент до найближчого цілого числа

sin

Повертає синус аргументу

sqrt

Повертає квадратний корінь з аргументу

tan

Повертає тангенс аргументу

4.11 Об'єкт Regexp

Об'єкт Regexp використовується для створення регулярних виразів.

5. Приклад написання калькулятора мовою JavaScript

<html>

<head>

<title>Калькулятор</title>

</head>

<script language= «JavaScript»>

<!-

 // deklaracja zmiennych

var wynik=0, op=0, nowe=0, nowe2=0, done=1, oset=0, kropka, temp;

function reset(value)

{

document.form1.ekran.value = value;

wynik = 0,

op = 0,

nowe = 0,

nowe2 = 0;

done = 1;

oset = 0;

}

function wspolna (new_temp)

{

kropka = 1;

if (nowe || done) {

nowe = 0;

done = 0;

temp = new_temp;

}

for (var i=0; i<temp.length; i++) if (temp[i]=='.') kropka=0;

}

function button (ktory, ktory2)

{

temp = document.form1.ekran.value;

if (ktory2=='.') {

wspolna('0');

if(kropka) {

temp += ktory2;

document.form1.ekran.value = temp;

oset = 0;

}

}

if (ktory>=0 && ktory<=9) {

wspolna('');

if (temp==0 && kropka==1) temp='';

temp += ktory;

document.form1.ekran.value = temp;

oset = 1;

}

if (ktory2=='-' || ktory2=='+' || ktory2=='/' || ktory2=='*') {

if(nowe) op = ktory2

else {

if(! nowe2) {

op = ktory2;

wynik = temp;

nowe2=1;

}

else {

wynik = eval (wynik + op + temp);

op = ktory2;

document.form1.ekran.value = wynik;

}

oset=0;

nowe = 1;

}

}

if (ktory2=='1/x') {wynik = eval (1 / temp); reset(wynik);}

if (ktory2=='sqrt') {wynik = Math.sqrt(temp); reset(wynik);}

if (ktory2=='exp') {wynik = Math.exp(temp); reset(wynik);}

if (ktory2=='+/-') document.form1.ekran.value = eval(-temp);

if (ktory2=='=' && oset && op!='0') reset (eval(wynik + op + temp));

if (ktory2=='C') reset(0);

if (document.form1.ekran.value[0] == '.')

document.form1.ekran.value = '0' + document.form1.ekran.value;

}

 // ->

</script>

<body>

<center>

<form name= «form1»>

<table bgColor= "#430086»>

<tbody>

<tr><td><table bgColor= "#430086» border= «1» cellPadding= «0» cellSpacing= «5»>

<tbody>

<tr align= «middle»>

<td colSpan= «5»><input name= «ekran» value= «0» size= «20»></td></tr>

<tr align= «middle»>

<td colSpan= «4»><b><font color= "#FFFF00»>Калькулятор</font></b></td>

<td><input name= «C» onclick= «button (11,'C')» type= «button» value=» C «></td></tr>

<tr align= «middle»>

<td><input name= «7» onclick= «button (7,'')» type= «button» value=» 7 «></td>

<td><input name= «8» onclick= «button (8,'')» type= «button» value=» 8 «></td>

<td><input name= «9» onclick= «button (9,'')» type= «button» value=» 9 «></td>

<td><input name=»/» onclick= «button (11,'/')» type= «button» value=» / «></td>

<td><input name= «sqrt» onclick= «button (11,'sqrt')» type= «button» value= «sqrt»></td></tr>

<tr align= «middle»>

<td><input name= «4» onclick= «button (4,'')» type= «button» value=» 4 «></td>

<td><input name= «5» onclick= «button (5,'')» type= «button» value=» 5 «></td>

<td><input name= «6» onclick= «button (6,'')» type= «button» value=» 6 «></td>

<td><input name= "*» onclick= «button (11,'*')» type= «button» value=» * «></td>

<td><input name= «exp» onclick= «button (11,'exp')» type= «button» value= «exp»></td></tr>

<tr align= «middle»>

<td><input name= «1» onclick= «button (1,'')» type= «button» value=» 1 «></td>

<td><input name= «2» onclick= «button (2,'')» type= «button» value=» 2 «></td>

<td><input name= «3» onclick= «button (3,'')» type= «button» value=» 3 «></td>

<td><input name=»-» onclick= «button (11,'-')» type= «button» value=» - «></td>

<td><input name= «1/x» onclick= «button (11,'1/x')» type= «button» value=«1/x «></td></tr>

<tr align= «middle»>

<td><input name= «0» onclick= «button (0,'')» type= «button» value=» 0 «></td>

<td><input name= "+/-» onclick= «button (11,'+/-')» type= «button» value=» +/ - «></td>

<td><input name=».» onclick= «button (11,'.')» type= «button» value=», «></td>

<td><input name= "+» onclick= «button (11,'+')» type= «button» value=» + «></td>

<td><input name= "=» onclick= «button (11,'=')» type= «button» value=» = «></td>

</tr>

</tbody>

</table>

</td>

</tr>

</tbody>

</table>

</center>

</form>

</body>

</html>

Висновки

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

· властивості;

· методи;

· події.

Об'єктну модель можна представити як спосіб зв'язку між сторінками і браузером. Об'єктна модель - це представлення об'єктів, методів, властивостей і подій, які присутні і відбуваються в програмному забезпеченні браузера, у вигляді, зручному для роботи з ними коди HTML і початкового тексту сценарію на сторінці. З її допомогою можна повідомляти необхідні побажання браузеру і далі - відвідувачеві сторінки. Браузер виконає всі команди і відповідно змінить сторінку на екрані.

Об'єкти з однаковим набором властивостей, методів і подій об'єднуються в класи однотипних об'єктів. Класи - це описи можливих об'єктів. Самі об'єкти з'являються тільки після завантаження документа браузером або як результат роботи програми. Про це потрібно завжди пам'ятати, щоб не звернутися до об'єкту, якого немає.

Список використаної літератури

1. http://www.citforum.ru/

Mike Melnikov. Статьи по Web-дизайну, JavaScript и объектная модель.

2. http://wdh.suncloud.ru/

Лукач Ю. Справочник Веб-разработчика: современные технологии WWW.

3. Девіс С. Языки JavaScript и VBScript. - К.: Діалектика, 1996.

4. Дейтел Х.М., Дейтел П.Дж., Нієто Т.Р. Как программировать для Internet & WWW. - М.:Бином, 2002

5. Дмитриева М. Java Script: быстрый старт. СПб., «БХВ-Петербург», 2002

6. Дунаев В. Java Script. СПб., «Питер», 2003

7. Зубкова С.В. Інтерактивні Web-документи. - М.: ДМК Пресс, 2000

8. Кенін А.М., Печенкина Н.С. Новий рівень створення HTML-документів. - Єкатеринбург: Діловая книга, 1996.

9. Мак-Федрис П. Использование Java Script. Специальное издание. М., СПб., Киев, «Вильямс», 2002

10. Матросов А.В., Сєргєєв А.О, Чаунін М.П. HTML 4.0. - СПб.: БХВ-Петербург, 2000.

11. Мікляєв А. Основи HTML. - М.: Солон, 1998.

12. Ратбон Э. JavaScript для чайників. - К.: Діалектика, 1995.


Подобные документы

  • Області застосування JavaScript. Об'єктна модель документа. Ієрархічна структура моделі та їх взаємозв'язки з іншими об'єктами. Іменування об'єктів і точковий синтаксис. Розміщення сценаріїв у документах. Способи визначення моменту запуску сценарію.

    реферат [26,5 K], добавлен 20.08.2011

  • Проект сторінки з розміщенням конвертора валют на мові програмування HTML та JavaScript. Розмітка гіпертекстових документів HTML, основні функції, властивості і параметри; структурне форматування. Технології CSS, JavaScript, ефективність використання.

    курсовая работа [1,8 M], добавлен 30.01.2012

  • Характеристика Javascript функции с параметрами (аргументами). Возврат значений, глобальные и локальные переменные в функции. Все способы создания пользовательских функций в Javascript. Область видимости переменных. Рекурсивная функция Javascript.

    лабораторная работа [75,8 K], добавлен 19.09.2019

  • Создание интерактивных веб-страниц. Что такое JavaScript. Полная интеграция с браузером. Мощные средства для создания сетевых соединений. Подключение и выполнение JavaScript. Загрузка данных без перезагрузки страницы. Объекты для работы с мультимедиа.

    лекция [16,2 K], добавлен 05.02.2012

  • Назначение и применение JavaScript, общие сведения. Понятие объектной модели применительно к JavaScript. Размещение кода на HTML-странице. URL-схема. Вставка (контейнер SCRIPT, принудительный вызов интерпретатора). Программирование свойств окна браузера.

    лекция [517,1 K], добавлен 09.03.2009

  • Сравнительная характеристика, возможности и функции языков программирования JavaScript и PHP. Основные области их использования. Разработка интерактивного Web-приложения с применением JavaScript на примере теста по теме "Программирование на языке Delphi".

    курсовая работа [19,3 K], добавлен 01.07.2014

  • Характеристика мови програмування VBA (Visual Basic for Application): можливості й засоби. Використання редактора Visual Basic. Створення та виконання VBA-програм. Типи даних, змінні й константи, операції й вирази. Керуючі оператори, процедури й функції.

    реферат [29,9 K], добавлен 28.06.2011

  • Дослідження та аналіз об’єкту програмування. Основні архітектурні риси JavaScript. Переваги CSS розмітки. Структура HTML-документа. Вимоги до апаратного та програмного забезпечення. Опис програми та її алгоритмів. Оцінка вартості програмного продукту.

    дипломная работа [1,0 M], добавлен 01.09.2016

  • Освоение принципов написания клиентских сценариев JavaScript, управляемых событиями. Связь собственной функции JavaScript с обрабатываемым событием. Оформление ссылок в виде графических кнопок, изменяющих свой вид при наведении на них указателя мыши.

    лабораторная работа [605,9 K], добавлен 25.05.2016

  • Изучение методик языка Javascript по формализации и решению поставленной задачи, технологических приемов разработки программ на языке Javascript, HTML, CSS. Формально определение машины Тьюринга, распознающую язык. Ее программная модель, протоколы работы.

    курсовая работа [220,7 K], добавлен 03.03.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.