Перейти до вмісту

JavaScript

Матеріал з K2 ERP Wiki
Версія від 17:16, 6 травня 2026, створена R (обговорення | внесок) (Первинна публікація)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)

→ Background jobs

!Альтернативи

Недоліки JavaScript

JavaScript event loop

}); └── README.md |- |Назва |JavaScript |- |Тип |Високорівнева, інтерпретована або JIT-компільована, мультипарадигмальна мова програмування |- |Автор |Брендан Айк |- |Перший реліз |1995 рік |- |Стандарт |ECMAScript |- |Актуальний стандарт станом на 2026 рік |ECMAScript 2025, 16-та редакція, затверджена у червні 2025 року[1] |- |Основні сфери |Frontend, backend, full-stack, mobile, desktop, browser extensions, automation |- |Складність для новачків |Середня |- |Головна платформа |Браузер |- |Серверна платформа |Node.js, Deno, Bun |}

переходить за посиланням; Frontend

</syntaxhighlight>Масив:

!Для чого застосовується
Приклад:<syntaxhighlight lang="javascript">
});
 .then(html => {
<h1 id="title">Старий заголовок</h1>

Приклад TypeScript:

!Пояснення
!Для чого застосовується
'''ECMAScript'''  це офіційно затверджений стандарт мови, на якому базується JavaScript.; |-
|'''[[SolidJS]]'''
|Frontend-фреймворк
|Реактивні інтерфейси з високою продуктивністю.; {| class="wikitable"

</pre>JavaScript додав іншу логіку:<pre>

!Інструмент
},

fetch("https://example.com") |- |Створений для браузера.; |- |Форматування |Prettier.; |- |Tauri |Легші desktop-застосунки з web-інтерфейсом і нативною оболонкою.; |- |string |"Hello" |Рядок тексту.; |- |JavaScript

|Поведінка: кліки, запити до сервера, інтерактивність, логіка.;

HTML описує структуру сторінки, CSS — зовнішній вигляд, а JavaScript — поведінку.

!Етап </syntaxhighlight> |- |Jest |Unit і integration тести.; |- |Full-stack-розробникам |Можна писати і клієнтську, і серверну частину.; |}

У web-розробці JavaScript повʼязаний із багатьма питаннями безпеки.; |}

console.log("3");

!Технологія </syntaxhighlight>

</syntaxhighlight>Створення проєкту:

* frontend;
* інтерактивні інтерфейси;
* web-застосунки;
* full-stack розробка програмного забезпечення;
* realtime-сервіси;
* browser extensions;
* мобільні й desktop-застосунки на web-технологіях;
* швидке створення користувацьких інтерфейсів.; !Причина
== Promise ==
!Для чого

!Рекомендація

Рекомендований шлях навчання JavaScript

response.writeHead(200, { "Content-Type": "text/plain" });

JavaScript — це мова інтерфейсів, через які бізнес-середовище спілкується з клієнтами, працівниками й партнерами.

!Runtime function add(a, b) {

return a + b;

|- |Динамічна типізація |Тип значення визначається під час виконання.;</script>

JavaScript runtime

Альтернативи JavaScript

console.log(html);

DOM

переважні аспекти JavaScript

Фреймворк

Frontend-фреймворки та бібліотеки

Сучасний JavaScript підтримує роботу ES Modules.; |-
Швидкий старт Для першого коду достатньо браузера.; !JavaScript

Приклад коду

Статична типізація в JS-екосистемі - Nuxt Vue Electron, Tauri.; |- Runtime - 11 - Vite - Основна сфера — web.; !Пояснення
});

console.log(multiply(3, 4));

1 }

package.json — центральний файл Node.js / JavaScript-проєкту.; |-

Ключове TypeScript став стандартом великих JS-проєктів - Ігри }

for (const language of languages) {

Правило

Складові модулі

</syntaxhighlight>

Для чого

JavaScript у тестуванні

Пояснення
функціонує в браузері - Універсальність - Кросплатформеність - Go Go часто кращий для простих і продуктивних backend-сервісів; JavaScript зручний для full-stack.; } catch (error) {
const button = document.getElementById("helloButton");

npm init

└── README.md │ ├── pages/ "scripts": {
Якщо потрібно

}

"version": "1.0.0",
- CSS - Менеджер пакетів - Тестувальникам - ESLint }

Спочатку мова називалася Mocha, потім LiveScript, а згодом отримала назву JavaScript.; |-

Не вставляти HTML без очищення Це має змогу створити XSS.;[2]
console.error("Помилка:", error);
console.log(`Привіт, ${name}!; |} console.log("Server is running on http://localhost:3000"); }

async / await

Приклад:
!Напрям
== Інструменти JavaScript-розробника ==
JavaScript дуже часто функціонує з асинхронними задачами:

Приклад:<syntaxhighlight lang="html">
}
== Структура JavaScript-проєкту ==
== Коротко ==
 title.textContent = "Новий заголовок";
{| class="wikitable"

Простими словами:<blockquote>'''JavaScript має змогу запустити задачу, не чекати її завершення, а потім повернутися до результату, коли він буде готовий.'''</blockquote>Приклад:<syntaxhighlight lang="javascript">
JavaScript створювався як мова для браузера, щоб вебсторінки могли реагувати на дії користувача.; |-
|'''C#'''
|C# сильний у .NET і Unity; JavaScript сильніший у браузері.; |-
|'''Callback / async складність'''
|Асинхронність потребує розуміння Promise, async/await і event loop.; |-
|'''[[Angular]]'''
|Frontend-фреймворк
|Великі enterprise frontend-застосунки.; |-
|'''Подієва модель'''
|Особливо важлива для браузера й Node.js.; |-
|2
|Змінні, типи, умови, цикли, функції.; |розроблена як універсальна мова для застосунків і enterprise-систем.;<blockquote>'''JavaScript — це мова, яка оживила веб: кнопки, форми, інтерактивність, SPA-застосунки, realtime-інтерфейси й сучасні web-платформи.'''</blockquote>

!Чому
 const title = document.getElementById("title");

├── src/
app.get("/", (request, response) => {

}

* знаходити елементи;
* змінювати текст;
* змінювати стилі;
* додавати або видаляти блоки;
* реагувати на кліки;
* обробляти форми.; |-
|'''[[Astro]]'''
|Islands architecture
|Швидкі контентні сайти, документація, блоги, маркетингові сторінки.; |Phaser, Three.js, Babylon.js.; import http from "node:http";
3
 age: 17,
У бізнесі JavaScript використовують для:
|-
|'''функціонує у браузері'''
|Не потрібне додаткове встановлення для frontend-коду.; |}

├── package.json
├── vite.config.js
інтерфейс змінюється одразу.; |}

== JavaScript у бізнесі ==
JavaScript додатково застосовують, коли потрібно для desktop-застосунків.; |-
|'''Full-stack'''
|Один стек для клієнта й сервера.; |-
|'''Оновлювати залежності'''
|Старі версії бібліотек можуть бути небезпечними.; |-
|'''[[npm]]'''
|Менеджер пакетів.; |}

├── .env.example
!Тип
1
Результат:
!Теза
|-
|'''[[Electron]]'''
|Desktop-застосунки на web-технологіях.; │ ├── components/
|-
|'''[[Browser JavaScript Engine|Браузерний JS-двигун]]'''
|Виконує JavaScript у браузері.; |}

</syntaxhighlight>Стрілкова функція:<syntaxhighlight lang="javascript">
 });
function add(a, b) {
!Приклад
|-
|'''[[Express.js]]'''
|Простий і популярний backend-фреймворк для Node.js.; |-
|'''Java'''
|Java сильніша в enterprise backend; JavaScript універсальніший у web.; .catch(error => {
|-
|'''[[Next.js]]'''
|React
|Full-stack React-застосунки, SSR, SSG, API routes.; |-
|3
|Масиви, обʼєкти, методи масивів.; |-
|'''[[Deno]]'''
|Сучасний runtime від автора Node.js з акцентом на безпеку й TypeScript.; |-
|'''Тестування'''
|Unit, integration, e2e-тести.; |-
|'''[[NestJS]]'''
|Структурований backend-фреймворк для великих Node.js-проєктів.; |Основна сфера — enterprise, backend, Android.; |-
|'''PHP'''
|PHP сильний у класичному server-side web; JavaScript охоплює і frontend, і backend.; |React Native, Ionic.; response.end("Hello from Node.js");
JavaScript функціонує майже в кожному сучасному браузері, з цієї причини став однією з найпоширеніших мов програмування у світі.;</syntaxhighlight>
2
Приклад Express API:
const name = "Anna";
Інструмент

counter += 1;

ECMAScript

State of JS 2024 зазначає, що серед frontend-фреймворків стабільно важливими залишаються React, Angular і Vue, а додатково зростають або активно використовуються Svelte, Solid, Qwik та інші рішення для бізнесу.; |-

Контроль версій Git.; Тобі ${age} років.`); </syntaxhighlight>Запуск script із package.json:

→ Бізнес-логіка

→ API на Node.js / Express / NestJS / Fastify JavaScript — це практична реалізація мови в браузерах і runtime-середовищах, а ECMAScript — стандарт, який описує синтаксис, типи, оператори, обʼєкти й поведінку мови.; |-

Ionic Статична типізація.; |- Node.js } Перевага
const html = await response.text();
"test": "vitest"

console.log("Hello, world!");

</syntaxhighlight>Обʼєкт:
 role: "student"
}
У вебі JavaScript майже завжди функціонує разом із HTML і CSS.; |-
|Добрий для малих скриптів.; |-
|7
|npm, package.json, modules.; |-
|'''High-performance backend'''
|Go, Rust, C++.; |-
|'''[[SvelteKit]]'''
|Svelte
|Full-stack застосунки на Svelte.; |}

{| class="wikitable"
 const response = await fetch("https://example.com");
Основні типи даних у JavaScript:
Приклад:<syntaxhighlight lang="json">
!TypeScript
|-
|'''[[React Native]]'''
|Кросплатформні мобільні застосунки для iOS і Android.; |-
|'''Desktop'''
|Desktop-застосунки на web-технологіях.; |}

├── public/
}
{| class="wikitable"
Редактор VS Code.; !Java

JavaScript можна використовувати для мобільних застосунків.; |-

10 - Активна спільнота Next.js, Nuxt, Remix.; |- undefined undefined - object { name: "Anna" } - Node.js - Remix React - Fastify - TypeScript - Node.js, Express, NestJS, Fastify.; |- Backend Статична типізація.; |- Перевіряти npm-пакети - Koa - Cypress - Динамічна типізація - Testing Library - TypeScript - істотно JavaScript має історичні особливості - Linting - npm-залежності }

JavaScript створив Брендан Айк у 1995 році для браузера Netscape Navigator.; |-

Web-дизайнерам - Mobile Android - Велика й мінлива програмний пакет Багато інструментів, складно вибрати правильний стек.; !Недолік

Коли JavaScript — хороший вибір

function add(a: number, b: number): number { let age = 17; Сучасний JavaScript має змогу бути дуже швидким, але продуктивність залежить від: <button id="helloButton">Натисни мене</button> "name": "my-app", }); } response.json({ message: "Hello from Express" });
server.listen(3000, () => {
Для чого характеристика

JavaScript, HTML і CSS

Основні ризики:

Приклади використання
React UI-бібліотека - Безпека frontend - Величезна програмний пакет npm має велику кількість пакетів.; Встановлення пакета:
├── src/

!Пояснення

'''JavaScript'''  одна з найважливіших мов сучасного IT.; api/
loadPage();
== Чому JavaScript такий популярний ==
</script>
== Популярність JavaScript ==

Популярні інструменти:
│ ├── services/
== npm ==
 "type": "module",
|-
|'''[[VS Code]]'''
|Редактор коду.; |-
|'''JIT-компіляція'''
|Сучасні JS-двигуни оптимізують код під час виконання.; |-
|'''Підходить для backend'''
|Node.js дозволив писати серверний код на JavaScript.; |-
|'''TypeScript'''
|TypeScript зробив JavaScript-екосистему зручнішою для великих проєктів.;
Приклад тесту:
Окремо варто відзначити яка є собою головною мовою сучасного вебу виступає ключовою рисою створення інтерактивних вебсторінок забезпечується через '''JavaScript'''.; |Потрібна компіляція або build step.; |}

!Фреймворк
!Компонент
};
== Backend-фреймворки JavaScript ==
|-
|'''Python'''
|Python сильніший в AI, data science і scripting; JavaScript сильніший у frontend.; |}

console.log(user.name);
JavaScript має історичні особливості й не завжди ідеальний, але його роль у web-екосистемі настільки велика, що знання JavaScript є собою майже обовʼязковим для будь-якого web-розробника.; це високорівнева мова програмування.; |-
|'''boolean'''
|<code>true</code>, <code>false</code>
|Логічне значення.; |-
|'''[[Jest]] / [[Vitest]]'''
|Тестування.; |Jest, Vitest, Playwright, Cypress.; |-
|Менше налаштувань.; сторінка відкрилась;
Змінні:
|-
|'''Frontend-розробникам'''
|JavaScript є собою основою браузерної розробки.; |-
|'''[[Vue.js]]'''
|Frontend-фреймворк
|Інтерактивні інтерфейси, SPA, зручний старт.; |-
|9
|TypeScript.; |-
|4
|DOM, події, форми.; |-
|Виконується в браузерах і JS-runtime.; |-
| style="background:#d4edda; color:#155724; font-weight:bold;" |Ключове
|'''JavaScript функціонує і на frontend, і на backend'''
|завдяки наявності Node.js JavaScript став мовою full-stack розробки.; |}
const appName = "My App";
завантажується нова сторінка.; |}

console.log("1");
Вона сильна там, де потрібні:

* сайтів;
* інтернет-магазинів;
* CRM;
* ERP-інтерфейсів;
* кабінетів користувача;
* адмінпанелей;
* мобільних застосунків;
* realtime-систем;
* інтеграцій;
* dashboard;
* SaaS-платформ;
* внутрішніх бізнес-інструментів.; |-
|5
|Fetch API, JSON, HTTP.; |-
|'''Backend enterprise'''
|Java, C#, Go.;  ├── services/
</pre>
Файл main.js:
'''Node.js'''  це середовище виконання JavaScript поза браузером.; |-
|'''Прототипне наслідування'''
|Обʼєкти можуть наслідувати властивості від інших обʼєктів.; |-
|'''symbol'''
|<code>Symbol("id")</code>
|Унікальний ідентифікатор.; |-
|8
|Один frontend-фреймворк: React, Vue, Angular або Svelte.; const multiply = (a, b) => a * b;

!Для чого застосовується
!Ключове слово
Спочатку веб був переважно статичним:<pre>
 "dev": "node src/main.js",
test("adds two numbers", () => {
|-
| style="background:#d4edda; color:#155724; font-weight:bold;" |Ключове
|'''JavaScript — головна мова браузера'''
|Без JavaScript неможливо уявити сучасний інтерактивний веб.; |-
|'''Багато вакансій'''
|JavaScript потрібен майже всюди у web-розробці.; |Extension API.; |-
|'''[[Prettier]]'''
|Автоматичне форматування коду.; |-
|'''[[Hono]]'''
|Легкий web-фреймворк для edge, serverless і сучасних runtime.; |-
|'''Зберігати токени обережно'''
|Небезпечно зберігати секрети в frontend-коді.; expect(add(2, 3)).toBe(5);
 alert("Привіт з JavaScript!");
== package.json ==
|-
|'''Frontend'''
|Інтерактивні інтерфейси в браузері.; |}

 button.addEventListener("click", () => {
!Інструмент

* розміру bundle;
* кількості залежностей;
* оптимізації DOM;
* кількості перерендерів;
* мережевих запитів;
* lazy loading;
* caching;
* server-side rendering;
* edge rendering;
* якості архітектури.; Якщо Python відкриває двері в автоматизацію й AI, то JavaScript відкриває двері в живі інтерфейси, frontend і full-stack web.'''</blockquote>
{| class="wikitable"
{| class="wikitable"
console.log(add(5, 7));
|-
|'''const'''
|Для значень, які не треба переприсвоювати.; |-
|'''null'''
|<code>null</code>
|Навмисна відсутність значення.; |-
|'''Системне програмування'''
|C, C++, Rust, Zig.; |-
|'''[[Playwright]]'''
|End-to-end тести в браузері.; |-
|'''Mobile'''
|Кросплатформні мобільні застосунки.; Типова backend-архітектура на JavaScript:<pre>
→ База даних PostgreSQL / MySQL / MongoDB
== Важливі акценти ==
|-
|'''Історичні дивності'''
|Деяка поведінка мови неочевидна для новачків.; |-
|'''Build tool'''
|Vite.; console.log(html);
!Мова
== JavaScript і TypeScript ==
|-
|'''Не довіряти введеним даним'''
|інформаційні дані користувача потрібно перевіряти.; |}

!Задача
'''npm'''  це менеджер пакетів JavaScript-екосистеми.;<ref>https://survey.stackoverflow.co/2025/technology/</ref>
 return a + b;
 })

!Порівняння з JavaScript
!Інструмент
<script>
!Параметр

{| class="wikitable"
JavaScript має змогу:

 console.log("2");
setTimeout(() => {
return a + b;

});

Приклад структури backend-проєкту:

├── package.json

Приклад структури frontend-проєкту:
Найпростіша програма:
{

* назву проєкту;
* версію;
* scripts;
* dependencies;
* devDependencies;
* конфігурація інструментів.;
Як застосовується JavaScript export function add(a, b) { сторінка реагує без перезавантаження; console.log(language); Event loop — це механізм, який надає можливість JavaScript виконувати асинхронні задачі, не блокуючи ключовий потік.; Stack Overflow Developer Survey 2025 передбачено JavaScript серед найпопулярніших мов, які розробники використовували протягом року.; |- Playwright - Асинхронність - Browser extensions - Backend-розробникам Node.js популярний для API та realtime-сервісів.; → Docker / Kubernetes npm run dev Статус

Простими словами

Пояснення } const user = { } * backend API; * CLI-інструментів; * серверів; * real-time застосунків; * build tools; * DevOps-скриптів; * мікросервісів.; |- Браузер } завдяки наявності Node.js JavaScript почали використовувати для: function add(a, b) { import { add } from "./math.js";
Особливість return a + b;
!Що вивчати

* запити до сервера;
* таймери;
* робота з файлами;
* події користувача;
* WebSocket;
* API браузера;
* бази даних у Node.js.;<blockquote>'''Якщо користувач системи щось натиснув, ввів, перетягнув, відправив або отримав без перезавантаження сторінки — дуже ймовірно, що там функціонує JavaScript.'''</blockquote>
 try {

async function loadPage() {
== JavaScript у порівнянні з іншими мовами ==
!Коли використовувати
Файл <code>math.js</code>:<syntaxhighlight lang="javascript">

== JavaScript у backend-розробці ==
const server = http.createServer((request, response) => {

== Для чого застосовується JavaScript ==

* XSS;
* CSRF;
* небезпечна робота з cookies;
* небезпечні npm-залежності;
* витік токенів;
* неправильна валідація даних;
* dependency confusion;
* supply chain attacks.; |-
|'''Велика програмний пакет'''
|npm має величезну кількість пакетів.; |-
|'''AI / Data Science'''
|Python, R, Julia.;== Мінімальний набір для першого JavaScript-проєкту ==

користувач системи читає;
користувач системи натискає кнопку;
!Тип
Він містить:
|-
|Frontend web
| style="background:#d4edda; color:#155724; font-weight:bold;" |Найкращий вибір
|-
|SPA-застосунки
| style="background:#d4edda; color:#155724; font-weight:bold;" |Дуже добре
|-
|Full-stack web
| style="background:#d4edda; color:#155724; font-weight:bold;" |Добре
|-
|Backend API
| style="background:#d4edda; color:#155724; font-weight:bold;" |Добре
|-
|Realtime chat / WebSocket
| style="background:#d4edda; color:#155724; font-weight:bold;" |Добре
|-
|Mobile cross-platform
| style="background:#fff3cd; color:#856404; font-weight:bold;" |Добре через React Native
|-
|Desktop apps
| style="background:#fff3cd; color:#856404; font-weight:bold;" |Можливо через Electron або Tauri
|-
|AI / Data Science
| style="background:#fff3cd; color:#856404; font-weight:bold;" |Можливо, але Python частіше кращий
|-
|Low-level / drivers
| style="background:#f8d7da; color:#721c24; font-weight:bold;" |Не підходить
|}

}, 0);
!Чи підходить JavaScript?; |-
|'''[[Vitest]]'''
|Швидке тестування в сучасних Vite-проєктах.;<ref>https://ecma-international.org/publications-and-standards/standards/ecma-262/</ref>

!Пояснення
});
== Кому варто вивчати JavaScript ==
!JavaScript
 Redis / Queue

інформаційні дані підвантажуються з сервера;
 └── main.js
== Джерела ==
{| class="wikitable"
== JavaScript у мобільній розробці ==
import express from "express";

{| class="wikitable"
const app = express();
console.log(add(2, 3));
 ├── models/
== Node.js ==

== Головна ідея JavaScript ==
!Кому
== Асинхронність ==

== Історичний розвиток ==
== Основні особливості JavaScript ==
{| class="wikitable"

Приклад JavaScript:<syntaxhighlight lang="javascript">
 .then(response => response.text())
!Приклади
TypeScript-код компілюється у JavaScript і виконується там само, де функціонує JavaScript.; |}
 "dependencies": {
 console.error("Помилка:", error);

├── tests/
ECMA International зазначає, що ECMAScript 2025 є собою 16-ю редакцією стандарту, опублікованою у червні 2025 року.; |-
|'''Багато вакансій'''
|JavaScript потрібен у web, frontend, full-stack і Node.js-розробці.; |Node.js scripts, npm tools.; |}

== Висновок ==
== JavaScript у desktop-розробці ==

let, const і var

│ ├── routes/ }
number 10, 3.14 } console.log(counter); На основі
console.log("API is running on http://localhost:3000");
HTML - Швидкий старт Перші приклади можна запускати без ускладнень в браузері.; !Значення name: "Anna",

Full-stack фреймворки

app.listen(3000, () => { Попри схожу назву, JavaScript не є собою Java.; |Добрий для командної розробки й великих codebase.; |-
Svelte Frontend-фреймворк / compiler - TypeScript - Ключове JavaScript має величезну екосистему - Підходить для frontend - Bun React, Vue, Angular, Svelte.; |- Новачкам у web - Функції першого класу Функції можна передавати як значення.;== Типи даних == Роль "express": "^4.18.0" У JavaScript залишається однією з найпоширеніших мов програмування.; |- bigint 123n - Webpack - let Для змінних, які можуть змінюватися.; │ └── app.js
Пояснення

JavaScript і безпека

const languages = ["JavaScript", "Python", "Java", "C#"]; my-app/

JavaScript і продуктивність

</syntaxhighlight>Функція:<syntaxhighlight lang="javascript"> npm install express let counter = 0; │ ├── styles/ │ ├── controllers/ return a + b; <syntaxhighlight lang="javascript"> У сучасному JavaScript зазвичай використовують const і let.; |-
Expo - Qwik Frontend-фреймворк - Mobile iOS - - автоматизація процесів Більше контролю у великих проєктах.; |} <script> Інструмент TypeScript — це надмножина JavaScript, яка додає статичну типізацію.; |- var - Увага JavaScript без дисципліни оперативно стає хаотичним - 6 Виконується на JVM.; DOM або Document Object Model — це модель HTML-сторінки, з якою JavaScript має змогу працювати.; {| class="wikitable" Приклад простого сервера:<syntaxhighlight lang="javascript"> * ECMAScript 2025 Language Specification: https://tc39.es/ecma262/2025/ * ECMA-262 — ECMAScript Language Specification: https://ecma-international.org/publications-and-standards/standards/ecma-262/ * Stack Overflow Developer Survey 2025 — Technology: https://survey.stackoverflow.co/2025/technology/ * State of JavaScript 2024 — Front-end Frameworks: https://2024.stateofjs.com/en-US/libraries/front-end-frameworks/ * MDN JavaScript Guide: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide * Node.js: https://nodejs.org/