1 of 63

Зміст теми

Вступ до JavaScript:

    • Що таке JavaScript?;
    • Довідники та специфікації;
    • Редактори для коду;
    • Консоль розробника – практика;
    • З чого починається JavaScript;
    • Основи розмітки коду;
    • Класика "Привіт, Світ" (практика);
    • Правила розмітки коду для великих скриптів.

2 of 63

Що таке JavaScript?

Вступ до JavaScript:

    • Що таке JavaScript?;
    • Довідники та специфікації;
    • Редактори для коду;
    • Консоль розробника – практика;
    • З чого починається JavaScript;
    • Основи розмітки коду;
    • Класика "Привіт, Світ" (практика);
    • Правила розмітки коду для великих скриптів.

3 of 63

Суть JavaScript (1/3)

  • JavaScript розроблявся, щоб створювати динамічні web-сторінки;
  • Код написаний на JavaScript це інтерпретована мова скриптової розмітки;
  • Програми на JavaScript називаються «скрипти»;
  • У браузері вони підключаються безпосередньо до HTML і, як тільки завантажується сторінка - тут же виконуються;

4 of 63

Суть JavaScript (2/3)

  • Простота - скрипти представляють простий текст, який максимально наближений до звичайної англійської мови; 
  • Стандартизація - JavaScript це незалежна мова, зі своєю специфікацією, яка називається ECMAScript;

5 of 63

Суть JavaScript (3/3)

  • Унікальність - інтерпретатор цієї мови вмонтований в усі існуючі браузери, тому скрипти, написані на JavaScript, можуть вільно виконуватися на динамічних веб-сторінках;
  • Безпека - існуючий JavaScript можна вважати безпечною мовою програмування загального призначення (вона не працює з пам'яттю, процесором та іншими засобами на низькому рівні).

6 of 63

Обмеження JavaScript

  • Головним обмеженням, є те, що можливості JavaScript поширюються на поточне вікно і веб-сторінку;
  • Але більшість обмежень відсутні якщо програміст буде використовувати JavaScript для роботи поза браузером (наприклад, на сервері).

7 of 63

Довідники та специфікації

Вступ в JavaScript:

    • Що таке JavaScript?;
    • Довідники та специфікації;
    • Редактори для коду;
    • Консоль розробника – практика;
    • З чого починається JavaScript;
    • Основи розмітки коду;
    • Класика "Привіт, Світ" (практика);
    • Правила розмітки коду для великих скриптів.

8 of 63

Визначальний документ по JavaScript

ECMA (European Computer Manufacturers Association) — некомерційна асоціація європейських виробників комп'ютерів, створена в 1961 році і розташована в Женеві. Займається розробкою стандартів для інформаційних і комунікаційних систем.

9 of 63

Три основних довідника по JavaScript

  • https://developer.mozilla.org/ (Mozilla Developer Network) - носить інформацію про те, як писати код для основних браузерів, але якщо команда тільки для Firefox вона буде позначена;
  • http://msdn.microsoft.com/ (MSDN) - довідник від Microsoft. Саме тут найбільш повний опис специфіки роботи для IE;
  • https://developer.apple.com/library/safari/navigation/index.html - в ньому можна знайти цінну інформацію по JavaScript для Safari.

10 of 63

Корисна інформація для програмістів на JavaScript

  • Http://help.dottoro.com – має доволі деталізовану інформацію по HTML/CSS/JavaScript;
  • Http://www.quirksmode.org – інформація про не сумісність різних браузерів. Це доволі старий ресурс, і в першу чергу цікавий для підтримки старих версій браузерів;
  • Http://caniuse.com – ресурс про підтримку браузерами новітніх можливостей HTML/CSS/JavaScript.

11 of 63

Редактори для коду

Вступ до JavaScript:

    • Що таке JavaScript?;
    • Довідники та специфікації;
    • Редактори для коду;
    • Консоль розробника – практика;
    • З чого починається JavaScript;
    • Основи розмітки коду;
    • Класика "Привіт, Світ" (практика);
    • Правила розмітки коду для великих скриптів.

12 of 63

Редактор

  • Хороший редактор повинен мати:
    • Підсвічування синтаксису;
    • Автодоповнення;
    • Folding - можливість приховати-розкрити блок коду.

13 of 63

IDE, в тому числі для роботи з JavaScript

  • Продукти IntelliJ: WebStorm, PHPStorm (PHP), IDEA (Java), RubyMine (Ruby) та інші;
  • Visual Studio, в поєднанні з розробкою під .NET (Win);
  • Продукти на основі Eclipse, зокрема Aptana і Zend Studio;
  • Komodo IDE і його полегшена версія Komodo Edit;
  • Netbeans та інше

14 of 63

Мінус IDE

  • Мінус IDE, в тому, що вони в більшості платні (правда з можливістю безкоштовно використовувати деякий час);
  • Саме з цієї причини, можна використовувати так звані легкі редактори;
  • Сфера застосування легкого редактора - миттєво відкрити потрібний файл, щоб щось в ньому виправити.

15 of 63

Легкі редактори JavaScript

16 of 63

Консоль розробника - практика

Вступ до JavaScript:

    • Що таке JavaScript?;
    • Довідники та специфікації;
    • Редактори для коду;
    • Консоль розробника – практика;
    • З чого починається JavaScript;
    • Основи розмітки коду;
    • Класика "Привіт, Світ" (практика);
    • Правила розмітки коду для великих скриптів.

17 of 63

Інструменти розробника JavaScript

  • Інструменти розробки присутні в усіх браузерах;
  • Вони дають можливість просунутому користувачеві або веб-розробнику знаходити помилки, а також отримувати масу корисної інформації про виконання скриптів.

18 of 63

Браузер

  • Отже, нехай у вас буде Google Chrome
  • Відкрийте сторінку trybug.html.
  • Ви побачите текст:

«Спробуйте знайти на цій сторінці скрипт з помилкою»

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

  • Потрібно відкрити інструменти розробника:

Для цього використовуйте клавішу F12 під windows, а якщо у вас mac, то cmd + opt + j.

П.С. Зверніть увагу - помилка в JavaScript - коді сторінки ніяк не позначилася на функціоналі самої сторінки - текст ви бачите, а ось JavaScript код не працює.

19 of 63

Інструменти розробника

20 of 63

Нас цікавить вкладка Console

Коли ми натиснемо на неї, ми побачимо рядок в якому буде помилка

21 of 63

Рядок з помилкою

22 of 63

Перейдіть у вкладку "Sources" з кодом до місця помилки

Тут же буде і короткий опис помилки.

В даному випадку помилка викликана рядком «невідомо скрипт», яка інтерпретатору незрозуміла!

23 of 63

Зручність Console

  • Console, дуже зручно використовувати, коли ви не хочете вносити зміни в свій код, а хочете швидко перевірити реакцію сторінки на ті зміни, що ви запланували.

24 of 63

Питання для самоконтролю?�(Консоль розробника)

  • Яку клавішу потрібно натиснути для запуску редактора коду в Google Chrome?
  • У чому різниця редакторів коду в різних браузерах?
  • Для чого зручно використовувати засоби Console?

25 of 63

З чого починається JavaScript

Вступ в JavaScript:

    • Що таке JavaScript?;
    • Довідники та специфікації;
    • Редактори для коду;
    • Консоль розробника – практика;
    • З чого починається JavaScript;
    • Основи розмітки коду;
    • Класика "Привіт, Світ" (практика);
    • Правила розмітки коду для великих скриптів.

26 of 63

Початок програми на мові JavaScript

  • Програми на мові JavaScript можна вставити в будь-яке місце HTML за допомогою тегу SCRIPT.
  • Саме з цього скрипту (script) і починається код JavaScript!

27 of 63

Практика:

Створіть файл base.html і заповніть його кодом нижче:

<!DOCTYPE HTML>

<html>

 <head>

<meta charset="utf-8">

</head>

<body>

  <p> Початок документу</p>

  <script>

// тут можна написати будь який скрипт!!!

</script> 

<p> Кінець документу</p>

 </body>

 </html>

28 of 63

Поміркуйте

  • Як ви думаєте, що відбувається в браузері, коли код, завантаженої сторінки, підходить до рядка <script>?

29 of 63

Чому не варто ставитися недбало до розташування тега <script>?

Важливо!

  • Якщо ви розташуєте тег <script> в неправильному місці сторінки, то користувач замість відображення елементів сторінки, не буде бачити нічого, і йому буде здаватися, що його Інтернет «гальмує» або «сайт не працює», або «сайт занадто важкий»!

30 of 63

Основи розмітки коду

Вступ до JavaScript:

    • Що таке JavaScript?;
    • Довідники та специфікації;
    • Редактори для коду;
    • Консоль розробника – практика;
    • З чого починається JavaScript;
    • Основи розмітки коду;
    • Класика "Привіт, Світ" (практика);
    • Правила розмітки коду для великих скриптів.

31 of 63

Розмітка коду

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

32 of 63

Актуальність специфікації

  • Потрібно чітко розуміти, яка специфікація коду актуальна на сьогоднішній день:
    • Архаїчний код – погано;
    • Ультрасучасний - теж погано.

33 of 63

Приклад сучасного коду

  • Раніше за стандартом HTML 4 загальний рядок виклику виглядав так: type = "text / javascript".
  • Якщо вказувалося інше значення type, скрипт не виконувався!
  • У сучасній розробці атрибут type не обов'язковий:

<script> ... </ script>

34 of 63

Значення «за замовчуванням»

Спрощення коду досягається заданими «за замовчуванням» значеннями

Наприклад:

атрибут <script language = ...> за замовчуванням, варто в значенні «JavaScript», тому його ставити не обов'язково!

35 of 63

Питання для самоконтролю?�(Основи розмітки коду)

  • Чому важливо знати специфікацію мови, якою пишеться програмний код?
  • Який атрибут був обов'язковий в HTML 4 при виклику JavaScript?
  • Що таке значення «за замовчуванням» і навіщо важливо їх знати?

36 of 63

Класика "Привіт, Світ" (практика)

Вступ до JavaScript:

    • Що таке JavaScript?;
    • Довідники та специфікації;
    • Редактори для коду;
    • Консоль розробника – практика;
    • З чого починається JavaScript;
    • Основи розмітки коду;
    • Класика "Привіт, Світ" (практика);
    • Правила розмітки коду для великих скриптів.

37 of 63

Задача. Перша програма (1/2)

  • Створіть html файл hello.html
  • Відкрийте будь-який текстовий редактор, наприклад, Notepad;
  • Наберіть код сторінки, за прикладом, написаному нижче:

38 of 63

Задача. Перша програма (2/2)

<!DOCTYPE HTML>

<html> 

<head>

<!-- Тег meta для указання кодування -->

<meta charset="utf-8">

</head> 

<body> 

<p>Тут початок документа...</p>

<script>

alert('Це мій перший скрипт на

JavaScript. Привіт, Світ!' );

</script> 

<p>...а тут кінець документа :)</p> 

</body> 

</html>

Зберігаємо файл і запускаємо його

39 of 63

Опис, що ви бачите на екрані

40 of 63

Задача 1/2

Задача:

  • Що потрібно зробити з кодом, щоб завантажувалася вся веб-сторінка, а тільки потім з'явилося віконце «Привіт, світ!»

41 of 63

Задача 1/2

Рішення:

Поміняти код сторінки, за прикладом, нижче:

<!DOCTYPE HTML>

<html> 

<head>

<!-- Тег meta для указання кодування -->

<meta charset="utf-8">

</head> 

<body>

  <p>Тут початок документа...</p>

  <p>... а тут кінець документа :)</p> 

<script>

alert('Це мій перший скрипт на JavaScript. Привіт, Світ!' );

</script> 

</body> 

</html>

42 of 63

Задача 2/2

Завдання:

  • Напишіть код, щоб у другому віконці було написано «Привіт, JavaScript»

43 of 63

Задача 2/2

Рішення:

трохи змінити скрипт

<script>

alert('Привіт, JavaScript');

</script>

44 of 63

Питання для самоконтролю? �(Класика "Привіт, Світ")

  • Яким чином виглядає команда, після якої пишуть скрипт на JavaScript?
  • Яким чином виглядає команда, виведення інформаційного вікна для користувача на JavaScript?

45 of 63

Правила розмітки коду для великих скриптів

Вступ до JavaScript:

    • Що таке JavaScript?;
    • Довідники та специфікації
    • Редактори для коду;
    • Консоль розробника – практика;
    • З чого починається JavaScript;
    • Основи розмітки коду;
    • Класика "Привіт, Світ" (практика);
    • Правила розмітки коду для великих скриптів.

46 of 63

Правила для великих скриптів

  • У тілі інтернет сторінки (HTML коді) зазвичай пишуть тільки найпростіші скрипти.
  • Всі складні і багаторядкові скрипти виносять в окремий файл.

47 of 63

Причини

  • Щоб не захаращувати HTML код Браузер завантажить файл скрипта в перший раз і в подальшому буде брати його з кешу, якщо скрипт буде містити, бібліотеку функцій, яка може використовуватися на різних веб сторінках сайту.

48 of 63

Синтаксис

  • Три можливих варіанти:
    • Абсолютний шлях до файлу, який містить скрипт:

<script src="/шлях/до/скриптфайл.js"></script>.

    • Вказати і повний URL до файлу, який містить скрипт:

<script src="http://site.com/libs/скриптфайл.js "></script>.

    • Використовувати шлях щодо поточної сторінки (зручно, якщо файл скрипта знаходиться в поточній директорії) досить написати назву файлу:

<script src="скриптфайл.js"></script>

49 of 63

Задача. Робота з зовнішніми файлами (1/2)

Завдання:

  • Візьміть попередній файл з виведенням віконця «Привіт, Світ», і перенесіть JavaScript в окремий файл під назвою, mainscript.js.
  • Файл скрипта розташуйте в тій же директорії, де знаходиться html сторінка.

 

50 of 63

Задача. Робота з зовнішніми файлами (2/2)

Рішення:

Так, швидше за все, буде виглядати ваш hello2.html:

<!DOCTYPE HTML>

<html>

 <head>

 <meta charset="utf-8">

 </head>

 <body>

  <p>Тут початок документа...</p>

  <script src="mainscript.js"></script>

  <p>...а тут кінець документа :)</p>

 </body>

 </html>

�Так, швидше за все, буде виглядати ваш mainscript.js:

alert ('Це мій перший скрипт на JavaScript. Привіт, світ!');

 

51 of 63

Виконання практичного завдання

  • Запустіть ваш hello2.html і переконайтеся, що все виконується, точно так же, як і у «вбудованої» версії.
  • І знову ми бачимо, що поки користувач не натисне кнопку «ОК», завантаження сторінки не продовжиться…
  • Як виправити це?
  • Необхідно використовувати багатопотокові скрипти.

52 of 63

Атрибут async

  • Атрибут async: скрипт буде виконуватися повністю асинхронно.
  • Браузер не зупинить обробку сторінки, коли він дійде до рядка <script async src = "..."> або <script src = "..." async>.
  • Скрипт почне виконуватися, тільки тоді, коли браузер завантажить його повністю.

53 of 63

Задача. Робота з зовнішніми файлами, атрибут async (1/2)

Завдання:

  • Візьміть попередній файл hello2.html з виведенням віконця «Привіт, Світ», і зробіть виклик JavaScript файлу mainscript.js. в ассінхронному режимі за допомогою атрибута async.

54 of 63

Задача. Робота з зовнішніми файлами, атрибут async (2/2)

Рішення:

Так буде виглядати ваша рядок виклику скрипта в hello2.html

<script async src="mainscript.js"></script>

Запустіть відредагований hello2.html з простежте за змінами: 

Правильно! Тепер hello2.html завантажився повністю!

55 of 63

Особливість async

  • Аsync повністю залежить тільки від повного завантаження цього скрипта самим браузером.
  • Якщо ви будете завантажувати декілька скриптів одночасно, то виконається той, що завантажиться першим!
  • Наприклад: тут першим спрацює не той скрипт, який раніше був оголошений, а той який першим завантажиться:
    •  <script src="1.js" async></script>
    • <script src="2.js" async></script>

56 of 63

Атрибут defer

  • Атрибут defer: також виконується асинхронно, і не змушує Інтернет сторінку чекати.
  • У ньому є дві відмінності від async:
    • Скрипти будуть виконуватися саме в тій послідовності в якої вони були оголошені;
    • Скрипт з defer спрацює, тільки тоді, коли весь HTML-документ буде оброблений браузером.

57 of 63

Особливості defer

  • Атрибут defer потрібно використовувати тоді, коли нормальна робота подальшого скрипта залежить від успішного виконання попереднього:

<script src="1.js" defer></script>

<script src="2.js" defer></script>

58 of 63

Задача. Робота з зовнішніми файлами, �атрибут defer (1/2)

Завдання:

  • Візьміть hello3.html�Відкрийте його в �текстовому редакторі, �і ви побачите виклик двох �скриптів, спочатку атрибутом �async, а потім defer.

59 of 63

Задача. Робота з зовнішніми файлами, �атрибут defer (1/2)

Рішення:

<p>Продовження документу...</p>

<script async src="mainscript.js" ></script>

<script src="mainscript2.js" defer></script>

<p>Продовження документу...</p>

60 of 63

Задача. Робота з зовнішніми файлами, атрибут defer(1/2)

Вірно!

Скрипт з async в «mainscript.js» виконається, як тільки завантажиться - до того, як весь документ готовий.

Скрипт з defer в «mainscript2.js» почекає готовності всього документа!

Опишіть, що ви бачите на экрані?

61 of 63

Задача. Завдання на виконання скриптів (1/2)

Завдання:

У нас є два скрипта:

    • Один легкий і маленький - small.Js,
    • Інший важить багато кб - big.Js.
    • Умова: Далі ми, припускаємо, що small.js завантажується набагато швидше, ніж big.js - який виконається першим?

1. 

<script src="big.js"></script>

<script src="small.js"></script>

2. А якщо напишем так?

<script async src="big.js"></script>

<script async src="small.js"></script>

 

3. А тепер так?

<script defer src="big.js"></script>

<script defer src="small.js"></script>

62 of 63

Задача. Завдання на виконання скриптів (1/2)

Рішення:

Першим виконається big.js! Будьте уважні, ми не використали атрибутів defer / async і в даному коді це звичайна послідовність виконання скриптів, що йдуть один за одним.

А ось тепер першим виконається small.js, так як скрипти через async поводяться абсолютно незалежно один від одного, сторінка теж від них не залежить.

Першим виконається big.js, Скрипти, підключені через defer!

63 of 63

Питання для самоконтролю?�(Правила розмітки коду для великих скриптів)

  • В яких випадках має сенс виносити JavaScript у зовнішній файл?
  • Що необхідно написати в <script>, щоб запустити виконуваний скрипт з зовнішнього файлу?
  • Які способи вказівки шляху до JavaScript файлу ви знаєте?
  • Що потрібно зробити якщо ми хочемо, щоб JavaScript не зупиняв завантаження і виконання Інтернет сторінки браузером?
  • У чому відмінність атрибутів async і defer?
  • У яких випадках необхідно застосування атрибута defer, а не async?