Що таке JavaСкрипт? Вступ із прикладом Hello World

⚡ Розумний підсумок

JavaСкрипт – це мова програмування, яка робить веб-сторінки інтерактивними. У цьому вступі пояснюється, що JavaЩо таке скрипт, звідки він взявся, як браузери та Node.js його виконують, а також як написати та запустити перший скрипт Hello World.

  • 🌐 Клієнт і сервер: JavaСкрипт спочатку писався всередині браузера, але тепер також працює на серверах через Node.js, Deno та Bun.
  • 🕰️ Походження: Брендан Айх створив цю мову в Netscape у 1995 році; вона називалася Mocha, потім LiveScript, а потім JavaСценарій.
  • 📜 Стандарт: ECMAScript є офіційною специфікацією, тому кожен сучасний браузер погоджується з тими ж основними правилами мови.
  • 🛠️ Установка: Для написання та тестування вашого першого скрипта достатньо звичайного текстового редактора та будь-якого сучасного браузера.
  • 🖥️ Спочатку консоль: Натисніть F12, відкрийте вкладку Консоль та виконайте окремі рядки JavaСкрипт без створення будь-яких файлів.
  • ☕ Чи не Java: Java та JavaСкрипти мають лише чотири спільні літери та майже нічого більше, включаючи системи типів та середовища виконання.
  • ⚡ Розміщення: Розміщуйте скрипти всередині тегів скриптів або додайте посилання на зовнішній файл .js для чистіших та кешованих сторінок.

Що таке JavaScript

Що таке JavaСценарій?

JavaСкрипти — це мова програмування високого рівня, яка додає певну поведінку веб-сторінкам. Це одна з трьох основних технологій Інтернету: HTML забезпечує структуру, CSS забезпечує зовнішній вигляд, а JavaСкрипт забезпечує взаємодію. Щоразу, коли поле пошуку показує пропозиції під час введення тексту, з’являється карусель фотографій або форма реєстрації попереджає вас про пропущене поле, JavaСкрипт виконує цю роботу у фоновому режимі.

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

Введення в JavaScript

Протягом більшої частини свого життя JavaСкрипти описували як мову сценаріїв на стороні клієнта, оскільки вони працювали лише всередині браузера. Цей опис зараз неповний. З моменту появи Node.js у 2009 році та сама мова також працювала на веб-серверах, утилітах командного рядка, настільних та мобільних додатках. Більш точний опис сьогодні такий: JavaСкрипт — це мова загального призначення з надзвичайно сильною присутністю в браузері.

Характеристики, що визначають мову:

  • Динамічно типізовано: Змінна може містити число зараз і рядок через мить, тому типи перевіряються під час виконання програми.
  • Інтерпретовано та складено вчасно: Такі рушії, як V8 у Chrome та Node.js, компілюють часто виконуваний код у машинний код для пришвидшення.
  • Мультипарадигма: Підтримуються імперативний, функціональний та об'єктно-орієнтований стилі.
  • Керований подіями: код реагує на кліки, натискання клавіш, таймери та відповіді мережі, а не працює зверху вниз і зупиняєтьсяping.
  • Однопотоковий з циклом подій: Повільна робота, така як мережевий виклик, ставиться в чергу замість того, щоб заморожувати сторінку.

💡 Порада: JavaScript та ECMAScript не є конкуруючими мовами. ECMAScript – це письмова специфікація, і JavaСкрипт — це реалізація цієї специфікації, яку браузери та Node.js фактично постачають.

історія JavaScript

Брендан Айх створив JavaСценарій у Netscape Communications у 1995 році, створивши перший робочий прототип приблизно за десять днів. Внутрішньо проєкт мав назву кава моккоВін постачався в бета-версії Netscape Navigator 2.0 як LiveScript у вересні 1995 року та був перейменований JavaScript у грудні 1995 року в рамках маркетингової угоди між Netscape та Sun Microsystems, компанією, яка володіла Java в той час.

Javascript Історія

Саме перейменування є єдиною причиною, чому так багато новачків досі вважають JavaScript — це полегшена версія JavaЦі дві мови не пов'язані між собою за дизайном, способом володіння та часом виконання. Netscape представив мову Ecma International у 1996 році, а перше видання стандарту ECMA-262 було опубліковано в червні 1997 року. У таблиці нижче наведено найважливіші етапи під час читання старішого коду.

рік Віха Чому це важливо?
1995 Мокко, потім LiveScript, потім JavaScript Мова була створена в Netscape Бренданом Айхом.
1997 ECMA-262 перше видання Мова отримує письмовий стандарт, нейтральний до постачальника.
2009 ES5 та перший реліз Node.js Настає суворий режим, і JavaСкрипт виходить за межі браузера.
2015 ES6 (ECMAScript 2015) Додано let, const, стрілкові функції, класи, модулі та проміси.
2016 вперед Щорічні видання ECMAScript Менші функції виходять щочервня, а не рідкісними великими релізами.

Через щорічний цикл випусків, код, написаний до 2015 року, помітно відрізняється від сучасного коду. У старіших навчальних посібниках використовується var скрізь, тоді як поточний код надає перевагу let та const коли оголошення змінних у JavaScript.

Що таке JavaДля чого використовується скрипт?

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

Область Що JavaСкрипт там робить Типові інструменти
Фронтенд браузера Обробляє кліки, оновлює сторінку без перезавантаження, перевіряє форми та малює діаграми. React, Vue, Angular, Svelte
Сторона сервера Обслуговує HTTP-запити, взаємодіє з базами даних та створює REST або GraphQL API. Node.js, Deno, Bun, Express
Мобільні додатки Будує Android та iOS-додатки з єдиної спільної кодової бази. Реагуйте нативно, Ionic, Конденсатор
Настільні програми Огортає веб-інтерфейс у власне вікно з доступом до файлової системи. Електрон, Телець
Інструменти та автоматизація Об'єднує ресурси, запускає набори тестів та керує браузерами для комплексного тестування. Vite, webpack, Jest, Playwright

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

Як бігти JavaСценарій?

JavaСкрипт не виконується сам по собі. Йому потрібне середовище хоста, яке містить JavaScript двигунChrome та Edge використовують V8. Firefox використовує SpiderMonkey, а Safari використовує JavaScriptCore. Коли браузер завантажує HTML-сторінку та знаходить скрипт, він передає цей скрипт своєму движку, який аналізує, компілює та запускає його.

Друге хост-середовище — це Node.js, яке вбудовує той самий рушій V8 поза браузером. Саме так ідентична мова працює на сервері або в терміналі. Практична перевага JavaСценарій такий кожен сучасний браузер підтримує його on Windows, Linux і macOS, тому вам рідко потрібно турбуватися про те, який браузер використовує відвідувач. Це справжнє покращення порівняно з VBScript, який працював лише в Internet Explorer на Windows і тепер застарів разом із самим Internet Explorer.

⚠️ Попередження: браузер JavaСкрипт та Node.js JavaСкрипти використовують основну мову, але не навколишні об'єкти. document та window існують лише в браузері, і require а модулі файлової системи існують лише в Node.js. Копіювання коду між ними без перевірки призведе до помилки посилання.

Вам потрібні інструменти

Вам потрібен текстовий редактор для написання коду та браузер для перегляду результату. Notepad++, Visual Studio Code, Sublime Text, і будь-який інший редактор, з яким ви впевнено працюєте, виконає цю роботу, хоча редактор із підсвічуванням синтаксису та зіставленням дужок значно заощадить вам час на налагодження. Працює будь-який сучасний браузер: Google Chrome, Firefox, Microsoft Edgeабо Safari. Окрім цих двох елементів, нічого не потрібно купувати чи встановлювати.

Простий JavaПрограма-скрипт

Якщо ви будете тримати JavaСкрипт усередині самого HTML-документа, весь код має знаходитися між початковим тегом <script> тег і закриваючий тег </script> тег. Ось як браузер відрізняє ваш код від навколишньої розмітки. Старіші сторінки також встановлюють type атрибут, записаний як <script type="text/javascript">, що було потрібно, коли існували конкуруючі клієнтські мови, такі як VBScript. Сучасні сторінки його не використовують, оскільки HTML5 не розглядає text/javascript за замовчуванням. Дві версії, наведені нижче, функціонально ідентичні, і обидві досі дійсні.

Привіт, світ, приклад

Традиційна перша програма відображає повідомлення. Помістіть наступну розмітку у файл з назвою hello.html та відкрийте його у браузері.

<html>
<head>
	<title>My First JavaScript code!!!</title>
	<script type="text/javascript">
		alert("Hello World!");
	</script>
</head>
<body>
</body>
</html>

вихід:

A browser dialog box opens containing the text:

Hello World!

Примітка: type="text/javascript" не є обов'язковим у HTML5. Наступний код працює точно так само.

<html>
<head>
	<title>My First JavaScript code!!!</title>
	<script>
		alert("Hello World!");
	</script>
</head>
<body>
</body>
</html>

вихід:

A browser dialog box opens containing the text:

Hello World!

Як тільки сторінка перевищує кілька рядків, переміщення скрипта у власний .js Файл зберігає розмітку читабельною та дозволяє браузеру кешувати код. Відмінності детально розглядаються в цьому порівнянні внутрішні та зовнішні JavaScript.

Як написати та запустити свій перший скрипт

Існує три практичні способи виконання JavaСкрипт, і новачкові варто спробувати всі три, оскільки кожен з них підходить для різних ситуацій.

1. Консоль браузера. Це найшвидший варіант, який взагалі не потребує файлів. Відкрийте будь-яку веб-сторінку, натисніть F12 (або Ctrl+Shift+Я увімкнено Windows і Linux, Cmd+Option+I увімкнено macOS) та виберіть Консоль Табуляція. Введіть рядок, натисніть Enter, і результат з'явиться одразу. Це ідеальне місце для перевірки окремого виразу або для перевірки того, що повертає функція.

// Type each line into the browser console and press Enter
console.log(2 + 2);
console.log("Guru" + 99);
console.log(Math.max(4, 12, 7));
console.log(typeof "hello");

вихід:

4
Guru99
12
string

Зверніть увагу на другий рядок. Додавання числа 99 до рядка «Guru" створює рядок "Guru99”, а не помилка, тому що JavaСкрипт автоматично перетворює число на текст. Така поведінка зручна і водночас є класичним джерелом помилок для початківців.

2. HTML-файл. Це приклад Hello World, наведений вище. Використовуйте його щоразу, коли код має торкатися самої сторінки, наприклад, для зчитування значення форми або зміни елемента.

3. Node.js з терміналу. Встановіть Node.js, збережіть код у файлі з розширенням .js розширення, а потім запустіть node first-script.jsНічого не рендериться, тому console.log стає вашим вихідним каналом. Це шлях, який слід обрати, коли ви хочете практикувати функції чистої мови без будь-якого HTML навколо них.

// first-script.js
const language = "JavaScript";
const createdBy = "Brendan Eich";
const releaseYear = 1995;

console.log(language + " was created by " + createdBy + " in " + releaseYear + ".");

const usedFor = ["Interactive web pages", "Server apps with Node.js", "Mobile apps"];

usedFor.forEach(function (item, index) {
  console.log(index + 1 + ". " + item);
});

вихід:

JavaScript was created by Brendan Eich in 1995.
1. Interactive web pages
2. Server apps with Node.js
3. Mobile apps

Цей короткий скрипт вже використовує три ідеї, з якими ви будете постійно зустрічатися: константи, оголошені за допомогою const, масив містить список значень та функцію зворотного виклику, що передається до forEachПереписування того ж циклу за допомогою for твердження – це корисна вправа після того, як ви вивчили петлі в JavaScript.

JavaСценарій проти Java

Ці імена — найбільша випадковість в історії програмування, і плутанину, яку вони спричиняють, варто розвіяти заздалегідь. JavaScript було перейменовано з LiveScript виключно з маркетингових міркувань у 1995 році, коли Java була найбільш обговорюваною технологією в Інтернеті. Ці дві мови були розроблені різними людьми, в різних компаніях, для різних проблем.

Аспект JavaScript Java
Створений Брендан Айх у Netscape, 1995 Джеймс Гослінг у Sun Microsystems, 1995
Typing Динамічний та слабо типізований Статичні та строго типізовані
Біжить далі Браузерні двигуни та Node.js Команда Java Віртуальна машина
Compilation Складається рушієм точно вчасно під час виконання Компільовано заздалегідь у байт-код
Об'єктна модель На основі прототипу, з доданим синтаксисом класів в ES6 Клас з самого початку
Розширення файлу . Js .java, скомпільований у .class
Загальне використання Веб-інтерфейси, API, інструменти Корпоративні серверні системи, Android, великі дані

Єдина справжня схожість полягає в тому, що обидві мови запозичують синтаксис фігурних дужок з C. Вивчення одного не навчить вас іншого, хоча спільний синтаксис трохи полегшує читання другої мови. Якщо дотримуватися суворого typing звертається до вас, TypeScript додає статичний шар тексту поверх JavaСкрипт під час компіляції до простого вигляду JavaСценарій, а відмінності викладено в цьому TypeScript та JavaПорівняння скриптів.

Після того, як основи закріплені, природні наступні кроки такі: інтерактивний JavaВправи зі сценаріями, То змінні та типи даних, А потім масиви та петлі. Після того, об'єктно-орієнтована JavaScript пояснює, як об'єкти, прототипи та класи поєднуються між собою, та форматування рядка охоплює обробку тексту, яку ви використовуватимете майже в кожному скрипті.

Поширені запитання

ECMAScript — це письмовий стандарт, опублікований як ECMA-262, який визначає синтаксис та вбудовані об'єкти. JavaСкрипт — це робоча реалізація цього стандарту, що постачається постачальниками браузерів та Node.js. Назви версій, такі як ES6, позначають редакції стандарту.

Обидва. Вихідний код постачається у вигляді звичайного тексту та зчитується рушієм, але такі рушії, як V8 та SpiderMonkey, компілюють часто виконувані функції в машинний код за принципом just-in-time. Результат поводиться як інтерпретована мова з майже компільованою швидкістю.

Звичайними причинами є відсутній тег закриваючого скрипта, неправильний шлях до зовнішнього файлу, друкарська помилка, яка призводить до синтаксичної помилки, або скрипт, який виконується до того, як існує елемент, на який він спрямований. Відкрийте вкладку «Консоль», щоб прочитати точну помилку.

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

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

Він створює інтерфейс чату, передає відповіді моделі токен за токеном та викликає API моделі з серверної частини Node.js. Бібліотеки, такі як TensorFlow.js та ONNX Runtime Web, також запускають менші моделі безпосередньо в браузері.

Підсумуйте цей пост за допомогою: