Вступ

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

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

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

  • Маєте загальне уявлення про Інтернет та Всесвітню павутину World Wide Web (WWW).
  • Добре знаєтесь на практичному використанні мови розмітки гіпертексту  (HTML).
  • Маєте певний досвід программування. Якщо ви новачок у програмуванні, то спробуйте використати один із посібників із JavaScript на головній сторінці.

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

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

Якщо ви новачок у JavaScript, почніть із вивчення статей, розміщених у  навчальній секції (learning area) та посібника з JavaScript (JavaScript Guide). Опанувавши основи, можете використовувати Довідник з 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, що дозволить вам створювати більш складні застосунки.

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

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