Цей розділ розповідає про мову JavaScript та деякі засадничі її поняття.

Необхідний рівень підготовки

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

  • Загальне уявлення про Інтернет та (Всесвітнє павутиння);
  • Практичний досвід використання мови розмітки гіпертексту (HTML);
  • Певний досвід программування. Якщо ви у цьому новачок, то спробуйте один з посібників із JavaScript на головній сторінці.

Де знайти інформацію з JavaScript

Документація з JavaScript на ресурсі MDN містить таке:

Якщо ви новачок у JavaScript, почніть із вивчення статей, розміщених у навчальній секції (learning area) та Посібника з JavaScript. Опанувавши основи, можете використовувати Довідник з JavaScript для отримання більш детальної інформації про конкретні об'єкти та вирази (конструкції мови).

Що таке JavaScript?

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

Мова JavaScript має стандартну бібліотеку об'єктів (таких як Array, Date та Math) і основний набір елементів мови програмування, таких як оператори, керівні структури та вирази.

Ядро JavaScript може бути розширене для різних потреб шляхом доповнення його додатковими об'єктами. Наприклад:

  • На стороні клієнта JavaScript розширює ядро ​​мови, додаючи об'єкти керування переглядачем і його об'єктною моделлю документа — Document Object Model (DOM). Наприклад, клієнтські розширення дозволяють застосункам розміщувати елементи на HTML-формі та реагувати на дії користувача, такі як клацання миші, введення даних у форму і пересування сторінками.
  • На стороні сервера JavaScript розширює ядро ​​мови шляхом додавання об'єктів, що стосуються роботи JavaScript на сервері. Наприклад, серверні розширення дозволяють застосункам взаємодіяти з базою даних, забезпечувати безперервність потоку інформації від одного запущеного застосунку до іншого, або виконувати маніпуляції з файлами на сервері.

JavaScript та Java

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

JavaScript наслідує синтаксис більшості виразів Java, також наслідуються угоди про іменування та основні конструкції керування перебігом виконання сценарію. Це і стало причиною того, що свого часу назву мови змінили з LiveScript на JavаScript.

На відміну від системи часу коміляції декларативно побудованих класів у Java, мова JavaScript підтримує систему часу виконання, що ґрунтується на невеликій кількості типів даних, представлених числовим типом, логічними, та рядковими значеннями. JavaScript має об'єктну модель, що спирається на прототипи, замість більш поширеної, побудованої на класах, об'єктної моделі, властивої мові Java. Модель на базі прототипів надає можливість динамічного спадкування; тобто успадковане може бути різним для різних об'єктів. Також у JavaScript реалізована підтримка функцій без будь-яких особливих декларативних вимог. Функції можуть бути властивостями об'єктів, функціями, що виконуються, та слабко типізованими методами.

Для JavaScript властива вільніша форма мови, ніж для Java. Вас не зобов'язують оголошувати всі змінні, класи та методи. JavaScript-програміста не турбує питання, є метод відкритим (public), закритим (private), чи захищеним (protected). Для змінних, параметрів, та типів, що повертаються функціями, не вказується явним чином їх тип.

Java — це мова програмування, яка базується на класах, розроблена для швидкого виконання та забезпечення захищеності типів. Захищеність типів означає, що не можна, наприклад, привести тип integer до типу object reference, або отримати доступ до закритої пам'яті, маніпулюючи з байткодом Java. Базована на класах об'єктна модель означає, що програма повністю складається із класів та їх методів. Успадкування класів у Java та строга типізація взагалі вимагають існування тісно пов'язаних між собою ієрархій об'єктів. Ці вимоги роблять програмування на Java більш складним, ніж JavaScript-програмування.

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

JavaScript у порівнянні з Java
Мова JavaScript Мова Java

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

Базується на класах. Об'єкти поділяються на класи та екземпляри. Спадкування реалізоване через ієрархію класів. До класів та екземплярів не можна динамічно додавати властивості та методи.

Для змінних не декларуються типи даних (динамічна типізація). Для змінних необхідне декларування типів даних (статична типізація)
Не може автоматично вести запис до жорсткого диску. Може автоматично вести запис до жорсткого диску.

Щоб отримати більше інформації щодо відмінностей між JavaScript та Java, відвідайте цей розділ: Докладно про об'єктну модель.

JavaScript та специфікація ECMAScript

JavaScript стандартизований Європейською асоціаіцєю з стандартизації інформаційних та комунікаційних систем — Ecma International (спершу складноскорот ECMA позначав European Computer Manufacturers Association). Ця стандартизована версія JavaScript, що має назву ECMAScript, однаково працює у всіх застосунках, що підтримують стандарт. Різні компанії можуть використовувати цей відкритий стандарт для розробки своїх реалізацій JavaScript. ECMAScript стандарт задокументований у специфікації ECMA-262. Див. Нове у JavaScript, щоб довідатись більше про різні версії JavaScript та про редакції специфікації ECMAScript.

Стандарт ECMA-262 також затверджений ISO (International Organization for Standardization), як ISO-16262. Ви можете знайти специфікацію на сайті Ecma International website. Специфікація ECMAScript не описує об'єктну модель документа Document Object Model (DOM), яка стандартизована World Wide Web Consortium (W3C). DOM визначає спосіб, у який об'єкти HTML-документа стають доступними із вашого скрипта. Для отримання більш повного уявлення про технології, що використовуються при програмуванні на JavaScript, зверніться до статті Огляд технологій JavaScript.

Документація з JavaScript та специфікація ECMAScript

Специфікація ECMAScript є низкою вимог до реалізації ECMAScript. Цих вимог слід дотримуватись, щоб запровадити відповідні стандартам можливості мови у реалізації ECMAScript, або, щоб створити рушій (наприклад, SpiderMonkey у Firefox або v8 у Chrome).

Документ ECMAScript не призначений для того, щоб надавати допомогу у програмуванні скриптів. Для отримання інформації про написання скриптів слід використовувати документацію JavaScript.

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

Документація JavaScript описує аспекти мови, які використовує програміст JavaScript.

Початок роботи із JavaScript

Розпочати працювати з JavaScript дуже просто: все, що вам потрібно — сучасний Веб-браузер. У даному посібнику розглядаються деякі можливості JavaScript, які, на даний час, реалізовані лише в останніх версіях Firefox, тому рекомендується використовувати саму останню версію Firefox.

До Firefox вбудовано два інструменти, що роблять його використання дуже зручним для експериментів із JavaScript: Web Console та Scratchpad.

Веб-консоль — Web Console

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

Щоб відкрити Web Console (Ctrl + Shift + K), оберіть пункт "Веб-консоль" із меню "Розробник" у меню Firefox. Вона з'явиться у нижній частині вікна переглядача. Внизу консолі, по всій її довжині, розміщено командну стрічку, до якої ви можете вводити команди та вирази JavaScript. Результати їх виконання одразу з'являться у панелі, що знаходиться вище:

Чернетка — Scratchpad

Веб-консоль чудово підходить для виконання окремих рядків JavaScript, і, хоча, ви й можете вводити й виконувати рядки по одному, це не дуже зручно, і ви не можете зберігати зразки свого коду з використанням Веб-консолі. Таким чином, для виконання більш складних прикладів, є кращий інструмент — Чернетка (Scratchpad).

Щоб відкрити Scratchpad (Shift + F4), оберіть "Чернетка" ("Scracthpad") у меню "Розробник" із меню Firefox. Він відкривається у окремому вікні і є редактором, який можна використовувати для запису і виконання JavaScript у переглядачі. Ви також можете зберегти скрипти до диску і завантажувати їх з диска.

Hello World

Щоб розпочати роботу з JavaScript, відкрийте Scratchpad та напишіть свою першу програму "Hello world":

function greetMe(yourName) {
  alert("Hello " + yourName);
}

greetMe("World");

Натисніть Ctrl + R, щоб побачити, як цей код буде виконано у переглядачі!

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

Мітки документа й учасники

 Зробили внесок у цю сторінку: OlkaA, asmforce, pavloeleva, yuraantonov
 Востаннє оновлена: OlkaA,