From daa1a2aff136fa9da1fcc97d7da97a2036fabc77 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:47 +0100 Subject: unslug uk: move --- .../guide/details_of_the_object_model/index.html | 760 +++++++++++++++++ .../guide/dokladno_pro_objectnu_model/index.html | 760 ----------------- .../guide/expressions_and_operators/index.html | 925 +++++++++++++++++++++ .../index.html" | 925 --------------------- 4 files changed, 1685 insertions(+), 1685 deletions(-) create mode 100644 files/uk/web/javascript/guide/details_of_the_object_model/index.html delete mode 100644 files/uk/web/javascript/guide/dokladno_pro_objectnu_model/index.html create mode 100644 files/uk/web/javascript/guide/expressions_and_operators/index.html delete mode 100644 "files/uk/web/javascript/guide/\320\262\320\270\321\200\320\260\320\267\320\270_\321\202\320\260_\320\276\320\277\320\265\321\200\320\260\321\202\320\276\321\200\320\270/index.html" (limited to 'files/uk/web/javascript/guide') diff --git a/files/uk/web/javascript/guide/details_of_the_object_model/index.html b/files/uk/web/javascript/guide/details_of_the_object_model/index.html new file mode 100644 index 0000000000..5e756710dd --- /dev/null +++ b/files/uk/web/javascript/guide/details_of_the_object_model/index.html @@ -0,0 +1,760 @@ +--- +title: Докладно про об'єктну модель +slug: Web/JavaScript/Guide/Dokladno_pro_Objectnu_Model +tags: + - Guide + - Intermediate + - JavaScript + - Object +translation_of: Web/JavaScript/Guide/Details_of_the_Object_Model +--- +
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Working_with_Objects", "Web/JavaScript/Guide/Using_promises")}}
+ +

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

+ +

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

+ +

Мови з класовою та прототипною моделлю

+ +

Об'єктно-орієнтовані мови з класовою моделлю, такі як Java і C++, засновані на концепції двох окремих сутностей: класів та екземплярів.

+ + + +

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

+ +

Задання і визначення класу

+ +

У мовах із класовою моделлю, класс задається у окремому визначенні класу. У цому визначенні можна вказати особливі методи, що називаються конструкторами, щоб створити екземпляри класу. Метод-конструктор може задати початкові значення властивостей екземпляру, і виконати якісь інші задачі прямо у момент створення. Для створення екземплярів застосовується оператор new у комбінації із методом-конструктором.

+ +

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

+ +

 

+ +
+

Зауважте, що ECMAScript 2015 вводить визначення класу:

+ +
+

Класи JavaScript, введені стандартом ECMAScript 2015, є лише синтаксичним цукром поверх уже наявного у JavaScript прототипного наслідування. Тобто ці класи не вводять у JavaScript нової моделі наслідуваня.

+
+
+ +

 

+ +

Дочірні класи і наслідування

+ +

У мові з класовою моделлю наслідкування ієрархія класів створюється через визначення класу. У цьому визначенні можна окремо вказати, що новий клас являється дочірнім стосовно уже наявного класу. Дочірній клас отримає всі властивості батьківського і може привнести нові (або ж змінити успадковані). Наприклад, припустимо, що клас Employee включає в себе лише поля name та dept, і Manager - це дочірній клас Employee, що додає властивість reports. У цьому випадку, екземпляр класу Manager матиме три властивості: name, dept, та reports.

+ +

JavaScript реалізовує наслідування дещо інакше. Він дозволяє пов'язувати об'єкт-прототип із будь-якою фукнцією-конструктором. Тобто ви можете точнісінько реалізувати приклад EmployeeManager, проте використовуючи дещо інші терміни. Спершу ви визначаєте конструктор Employee, задаючи властивості name та dept. Далі ви визначаєте фукнцію-конструктор Manager, що викликає конструктор Employee та задає властивість reports. Насамкінець, призначаєте новий об'єкт, отриманий з Employee.prototype в якості прототипу конструктора Manager. Надалі, при створенні екземпляра Manager він наслідує властивості name і dept з об'єкту Employee.

+ +

Додавання і видалення властивостей

+ +

Зазвичай у мовах із класовою моделлю наслідування класи створюються під час компіляції, а екземпляри класів - під час компіляції чи виконання програми. Після того, як його було визначено, не можна змінити кількість або тип його властивостей. Однак, у JavaScript можна додавати чи видаляти властивості будь-якого об'єкту безпосередньо під час виконання програми. Якщо додати нову властивість до об'єкту-прототипу певного набору об'єктів, вони всі також отримають цю властивість.

+ +

Підсумок відмінностей класової і прототипної моделей

+ +

Наступна таблиця надає короткий підсумок цих відмінностей. Решта розділу розкриває деталі застосування JavaScript-конструкторів і прототипів для створення ієрархії об'єктів, та порівнює це із тим, як би це робилось у Java.

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

Приклад із робітником "Employee"

+ +

Надалі у розділі ієрархія робітників, що показана на наступному зображенні.

+ +
+
+

Проста ієрархія об'єктів, сформована із наступних елементів:

+ +

+
+ +
+
    +
  • Employee має поля name (із порожнім рядком в якості значення за замовчуванням) та dept (у якого значення за замовчуванням — "general").
  • +
  • Manager заснований на Employee. Він додає властивість reports  (за замовчуванням містить порожній масив для об'єктів Employee).
  • +
  • WorkerBee також заснований на Employee. Він додає властивість projects (за замовчуванням містить порожній масив, призначений для рядків).
  • +
  • SalesPerson заснований на WorkerBee. Він додає властивість quota (за замовчуванням — число 100). Він також перевизначае властивість dept, надаючи їй нове значенням "sales" (що означає, що всі SalesPerson відносяться до одного відділу).
  • +
  • Engineer заснований на WorkerBee. Він додає властивість machine (значення за замовчуванням — порожній рядок) і перевизначає властивість dept, задаючи їй значення "engineering".
  • +
+
+
+ +

Створення ієрархії

+ +

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

+ +

Цей розділ показує, як використовувати дуже прості (і відносно негнучкі) визначення, і таким чином демонструє, як отримати робочий механізм наслідування. У цих визначеннях не можна задати жодного значення при створенні об'єкту — він отримає властивості із значеннями за замовчуванням, які можна буде змінити пізніше.

+ +

У реальному додатку ви б, ймовірно, визначали конструктор, що дозволяє задавати значення в момент створення об'єкту (докладніше у Більш гнучкі конструктори). А наразі ці прості визначення покажуть, як загалом відбувається наслідування.

+ +

Наступні визначення Employee у Java та JavaScript ідентичні. Єдина відмінність — у Java необхідно явно вказувати тип кожної властивості, на відміну від JavaScript (так як Java — мова із сильною типізацією, а JavaScript — із слабкою).

+ +
+

JavaScript

+ +
function Employee() {
+  this.name = '';
+  this.dept = 'general';
+}
+
+ +


+ Java

+ +
public class Employee {
+   public String name = "";
+   public String dept = "general";
+}
+
+
+ +

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

+ +
+

JavaScript

+ +
function Manager() {
+  Employee.call(this);
+  this.reports = [];
+}
+Manager.prototype =
+    Object.create(Employee.prototype);
+Manager.prototype.constructor = Manager;
+
+function WorkerBee() {
+  Employee.call(this);
+  this.projects = [];
+}
+WorkerBee.prototype =
+    Object.create(Employee.prototype);
+WorkerBee.prototype.constructor = WorkerBee;
+
+ +


+ Java

+ +
public class Manager extends Employee {
+   public Employee[] reports =
+       new Employee[0];
+}
+
+
+
+public class WorkerBee extends Employee {
+   public String[] projects = new String[0];
+}
+
+
+
+
+ +

 

+ +

Визначення Engineer та SalesPerson створюють об'єкти, що наслідуються вже від WorkerBee, а, отже, і від Employee. Об'єкти цих типів мають властивості всіх об'єктів вище у ланцюжку наслідування. Надодачу, ці визначення перевизначають успадковані значення поля dept, змінюючи їх відповідно до нового типу.

+ +
+

JavaScript

+ +
function SalesPerson() {
+   WorkerBee.call(this);
+   this.dept = 'sales';
+   this.quota = 100;
+}
+SalesPerson.prototype =
+    Object.create(WorkerBee.prototype);
+SalesPerson.prototype.constructor = SalesPerson;
+
+function Engineer() {
+   WorkerBee.call(this);
+   this.dept = 'engineering';
+   this.machine = '';
+}
+Engineer.prototype =
+    Object.create(WorkerBee.prototype);
+Engineer.prototype.constructor = Engineer;
+
+ +


+ Java

+ +
public class SalesPerson extends WorkerBee {
+   public String dept = "sales";
+   public double quota = 100.0;
+}
+
+
+public class Engineer extends WorkerBee {
+   public String dept = "engineering";
+   public String machine = "";
+}
+
+
+
+ +

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

+ +
+

Зауважте, що: термін екземпляр має специфічний технічний зміст у мовах із класовою моделлю. У цих мовах екземпляр являється окремою реалізацією класу і корінним чином відрізняється від його визначення. У JavaScript, "екземпляр" не має такого особливого змісту, бо сам JavaScript не має такої значної відмінності класів від їх реалізацій. Однак, у контексті JavaScript, "екземпляр" може неформально позначати об'єкт, створений певною функцією-конструктором. Тому, згідно наступного прикладу, можна неформально стверджувати, що jane є екземпляром класу Engineer. Так само, хоча терміни предок, нащадок, дочірній і батьківський класи не мають формального смісту в JavaScript, їх можна застосовувати для позначення об'єктів, що знаходяться вище чи нижче у ланцюжку прототипів.

+
+ +

Створення об'єктів за допомогою простих визначень

+ +
+

Ієрархія об'єктів

+ +

Наступна ієрархія створена за допомогою коду у правій частині.

+ +

+ +

Окремі об'єкти = Jim, Sally, Mark, Fred, Jane, etc.
+ "Екземпляри", створені конструктором

+ +
var jim = new Employee;
+// Дужки можна опустити, якщо
+// конструктор не приймає аргументів.
+// jim.name має значення ''
+// jim.dept має значення 'general'
+
+var sally = new Manager;
+// sally.name має значення ''
+// sally.dept має значення 'general'
+// sally.reports має значення []
+
+var mark = new WorkerBee;
+// mark.name має значення ''
+// mark.dept має значення 'general'
+// mark.projects має значення []
+
+var fred = new SalesPerson;
+// fred.name має значення ''
+// fred.dept має значення 'sales'
+// fred.projects має значення []
+// fred.quota має значення 100
+
+var jane = new Engineer;
+// jane.name має значення ''
+// jane.dept має значення 'engineering'
+// jane.projects має значення []
+// jane.machine має значення ''
+
+
+ +

Властивості (поля) об'єкту

+ +

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

+ +

Наслідування властивостей

+ +

Припустимо, такою інструкцією ви створили екземпляр WorkerBee — об'єкт mark:

+ +
var mark = new WorkerBee;
+
+ +

Коли JavaScript бачить оператор new, він створює загальний об'єкт і неявно встановлює WorkerBee.prototype значенням внутрішньої властивості [[Prototype]], і передає цей новий об'єкт як значення this до фукнції-конструктора WorkerBee. Внутрішня властивість [[Prototype]] визначає ланцюжок прототипів для виводу значень полів. Коли ці властивості задані, JavaScript повертає новий об'єкт, а інструкція присвоєння задає його в якості значення змінної mark.

+ +

Описаний процес явно не встановлює значення об'єкту mark для властивостей (локальні значення), які mark наслідує з ланцюжка прототипів. Коли ви запитуєте значення властивості, JavaScript в першу чергу перевіряє наявність цього значення у об'єкті, і повертає його, якщо знаходить. Якщо ж ні, JavaScript перевіряє весь ланцюжок прототипів (за допомогою властивості [[Prototype]]). Якщо об'єкт у ланцюжку має таку властивість - буде повернуто її значення (або повідомлення, що об'єкт не має такої властивості, якщо її все-таки не було знайдено). Таким чином, об'єкт mark має наступні властивості і значення:

+ +
mark.name = '';
+mark.dept = 'general';
+mark.projects = [];
+
+ +

З конструктора Employee об'єкту mark призначено локальні значення для властивостей name та dept, а з конструктора WorkerBee — значення властивості projects. Таким чином ми отримуємо наслідування властивостей і їх значень у JavaScript. Деякі тонкощі цього процесу додатково висвітлені у Іще раз про наслідування властивостей.

+ +

Так як ці конструктори не дозволяють задати специфічні для екземпляру значення, це являється загальним прикладом. В якості значень властивостей взяті значення за замовчуванням, що розповсюджуються на всі об'єкти, створені на основі WorkerBee. Звісно, значення цих властивостей можна змінити. Наприклад, так можна встановити їх значення для об'єкту mark:

+ +
mark.name = 'Doe, Mark';
+mark.dept = 'admin';
+mark.projects = ['navigator'];
+ +

Додавання властивостей

+ +

У JavaScript, можна додавати властивості до об'єкту безпосередно під час виконання. Ви не обмежені застосуванням лише властивостей, наданих конструктором. Щоб додати нову властивість до окремого об'єкту, просто призначте йому нове значення, як наведено далі:

+ +
mark.bonus = 3000;
+
+ +

Тепер об'єкт mark містить властивість bonus, проте більше ніхто із WorkerBee її не має.

+ +

Якщо додати нову властивість до об'єкту-прототипу іншого конструктора, то ця властивість з'явиться у всіх об'єктів, що наслідують властивості від прототипу. Наприклад, ось так можна додати властивість specialty всім робітникам:

+ +
Employee.prototype.specialty = 'none';
+
+ +

Як тільки JavaScript виконає інструкцію, об'єкт mark матиме властивість specialty із значенням "none". Наступна схема ілюструє ефект від додавання цієї властивості до прототипу Employee і її перевизначення у прототипі Engineer.

+ +


+ Додавання властивостей

+ +

Більш гнучкі конструктори

+ +

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

+ +


+ Задання властивостей у конструкторі, варіант 1

+ +

Таблиця далі показує визначення цих об'єктів у Java і JavaScript.

+ +
+

JavaScript

+ +

Java

+
+ +
+
function Employee(name, dept) {
+  this.name = name || '';
+  this.dept = dept || 'general';
+}
+
+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
public class Employee {
+   public String name;
+   public String dept;
+   public Employee () {
+      this("", "general");
+   }
+   public Employee (String name) {
+      this(name, "general");
+   }
+   public Employee (String name, String dept) {
+      this.name = name;
+      this.dept = dept;
+   }
+}
+
+
+ +
+
function WorkerBee(projs) {
+
+ this.projects = projs || [];
+}
+WorkerBee.prototype = new Employee;
+
+ +

 

+ +

 

+ +

 

+ +
public class WorkerBee extends Employee {
+   public String[] projects;
+   public WorkerBee () {
+      this(new String[0]);
+   }
+   public WorkerBee (String[] projs) {
+      projects = projs;
+   }
+}
+
+
+ +
+
+function Engineer(mach) {
+   this.dept = 'engineering';
+   this.machine = mach || '';
+}
+Engineer.prototype = new WorkerBee;
+
+ +

 

+ +

 

+ +

 

+ +
public class Engineer extends WorkerBee {
+   public String machine;
+   public Engineer () {
+      dept = "engineering";
+      machine = "";
+   }
+   public Engineer (String mach) {
+      dept = "engineering";
+      machine = mach;
+   }
+}
+
+
+ +

Ці JavaScript-визначення застосовують особливу ідіому для задання значення за замовчуванням:

+ +
this.name = name || '';
+
+ +

Логічний оператор АБО у JavaScript (||) обчислює перше значення. Якщо результат можна привести до true, оператор повертає його, а інакше - значення другого аргументу. Таким чином, ця стрічка коду перевіряє, чи name має якесь корисне значення для властивості name. Якщо так — this.name отримує її значення, а інакше значенням this.name стає порожній рядок. У розділі ця ідіома застосовується для стислості; однак вона може бути неочевидною на перший погляд.

+ +
+

Зауважте, що: це може працювати не так, як очікується, якщо конструктор викликається із аргументами, що приводяться до false (число 0 і порожній рядок (""). У цьому випадку буде обрано значення за замовчуванням.

+
+ +

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

+ +
var jane = new Engineer('belau');
+
+ +

Властивості Jane тепер виглядають так:

+ +
jane.name == '';
+jane.dept == 'engineering';
+jane.projects == [];
+jane.machine == 'belau';
+
+ +

Зауважте, що таким визначенням ви не можете задати первинне значення для наслідуваного поля name. Для задання значення наслідуваним властивостям у JavaScript, необхідно додати трохи більше коду до фукнції-конструктора.

+ +

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

+ +


+ Задання властивостей у конструкторі, варіант 2

+ +

Розгляньмо детальніше одне із цих визначень. Ось новий конструктор Engineer:

+ +
function Engineer(name, projs, mach) {
+  this.base = WorkerBee;
+  this.base(name, 'engineering', projs);
+  this.machine = mach || '';
+}
+
+ +

Припустимо, ви ось так створюєте новий об'єкт Engineer:

+ +
var jane = new Engineer('Doe, Jane', ['navigator', 'javascript'], 'belau');
+
+ +

Тут JavaScript виконує наступні кроки:

+ +
    +
  1. Оператор new створює загальний об'єкт і задає Engineer.prototype значенням його властивості __proto__ .
  2. +
  3. Оператор new передає новий об'єкт у конструктор Engineer в якості значення this.
  4. +
  5. Конструктор створює нову властивість base для цього об'єкту і присвоює їй значення конструктора WorkerBee. Так конструктор WorkerBee стає методом об'єкту Engineer. Назва властивості base не є чимось особливим. Ви можете використати будь-яке дозволене ім'я властивості, а base просто звучить змістовно для даного випадку.
  6. +
  7. Конструктор викликає метод base, передаючи в нього два своїх аргументи ("Doe, Jane" і ["navigator", "javascript"]) і новий рядок "engineering". Явно вказаний "engineering" у конструкторі означає, що всі об'єкти Engineer матимуть одне значення для наслідуваної властивості dept, і це значення заміщує успадковане від Employee.
  8. +
  9. Так як метод base належить Engineer, всередині виклику base JavaScript прив'язує значення this до об'єкту, створеного на першому етапі. Таким чином функція WorkerBee, в свою чергу, передає аргументи "Doe, Jane" та "engineering" до конструктора Employee. Після повернення з конструктора Employee функція WorkerBee задає останнім аргументом поле projects.
  10. +
  11. Після повернення з методу base конструктор Engineer ініціалізовує властивість machine об'єкту значенням "belau".
  12. +
  13. Після повернення з конструктору JavaScript присвоює новий об'єкт змінній jane.
  14. +
+ +

Може скластися враження, що, викликавши конструтктор WorkerBee зсередини конструктора Engineer, ви вкажете наслідування відповідно для об'єктів Engineer. Насправді виклик конструктора WorkerBee гарантує, що об'єкт Engineer матиме всі властивості, вказані у всіх викликаних конструкторах. Однак, якщо пізніше додати нові властивості до прототипів Employee чи WorkerBee, вони не будуть успадковані об'єктом Engineer. Припустимо, у нас є наступні інструкції:

+ +
function Engineer(name, projs, mach) {
+  this.base = WorkerBee;
+  this.base(name, 'engineering', projs);
+  this.machine = mach || '';
+}
+var jane = new Engineer('Doe, Jane', ['navigator', 'javascript'], 'belau');
+Employee.prototype.specialty = 'none';
+
+ +

Об'єкт jane не наслідує властивість specialty. Вам все ще необхідно явно вказувати прототип для гарантії динамічного наслідування. Натомість розглянемо такий набір інструкцій:

+ +
function Engineer(name, projs, mach) {
+  this.base = WorkerBee;
+  this.base(name, 'engineering', projs);
+  this.machine = mach || '';
+}
+Engineer.prototype = new WorkerBee;
+var jane = new Engineer('Doe, Jane', ['navigator', 'javascript'], 'belau');
+Employee.prototype.specialty = 'none';
+
+ +

Тепер значенням властивості specialty об'єкту jane являється "none".

+ +

Іншим способом наслідування являється використання методів call() чи apply(). Ось дві еквівалентні ділянки коду:

+ +
+
function Engineer(name, projs, mach) {
+  this.base = WorkerBee;
+  this.base(name, 'engineering', projs);
+  this.machine = mach || '';
+}
+
+ +
function Engineer(name, projs, mach) {
+  WorkerBee.call(this, name, 'engineering', projs);
+  this.machine = mach || '';
+}
+
+
+ +

Використання методу call() дає більш чисту реалізацію, так як base більше не потрібен.

+ +

Іще раз про наслідування властивостей

+ +

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

+ +

Локальні і успадковані змінні

+ +

Коли ви викликаєте властивість, JavaScript виконує наступні кроки (як описано вище у главі):

+ +
    +
  1. Перевіряє наявність цієї змінної прямо в об'єкті, і повертає її значення, якщо знаходить.
  2. +
  3. Якщо її немає серед локальних змінних - перевіряє ланцюжок прототипів (використовуючи властивість __proto__).
  4. +
  5. Якщо прототип у ланцюжку має значення вказаної властивості — повертає це значення.
  6. +
  7. Якщо вказана властивість не знайдена — значить, об'єкт її не має.
  8. +
+ +

Результат виконання цих кроків залежить від того, як ви задаєте значення і об'єкти.  Перший приклад мав такі визначення:

+ +
function Employee() {
+  this.name = '';
+  this.dept = 'general';
+}
+
+function WorkerBee() {
+  this.projects = [];
+}
+WorkerBee.prototype = new Employee;
+
+ +

Припустимо, враховуючи ці визначення, що наступною інструкцією ви створили екземпляр WorkerBee у змінній amy:

+ +
var amy = new WorkerBee;
+
+ +

Об'єкт amy має одну локальну змінну — projects. Значення властивостей name та dept насправді не належать amy, і тому виводяться через поле її поле __proto__. Отже, amy має такі значення властивостей:

+ +
amy.name == '';
+amy.dept == 'general';
+amy.projects == [];
+
+ +

Тепер припустимо, що ви змінили значення властивості name у прототипі, асоційованому з Employee:

+ +
Employee.prototype.name = 'Unknown';
+
+ +

На перший погляд, можна очікувати, що нове значення пошириться на всі екземпляри Employee. Однак, це не так.

+ +

При створенні будь-якого екземпляру об'єкту Employee, цей екземпляр отримає локальне значення для властивості name (порожній рядок). Тобто, коли ми задаємо прототип WorkerBee шляхом створення нового об'єкту Employee, WorkerBee.prototype має локальне значення властивості name. Отже, коли JavaScript шукає властивість name об'єкту amy (екземпляр WorkerBee), він знаходить місцеве значення властивості у WorkerBee.prototype. І тому він не намагається шукати далі в ланцюжку прототипів до Employee.prototype.

+ +

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

+ +
function Employee() {
+  this.dept = 'general';    // Зауважте, що тут немає this.name (локальної змінної)
+}
+Employee.prototype.name = '';    // Одна копія
+
+function WorkerBee() {
+  this.projects = [];
+}
+WorkerBee.prototype = new Employee;
+
+var amy = new WorkerBee;
+
+Employee.prototype.name = 'Unknown';
+
+ +

У цьому випадку, властивість amy name стане "Unknown".

+ +

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

+ +

Визначення відносин екземпляру

+ +

Пошук властивості у JavaScript виконується серед власних властивостей об'єкту, і, якщо властивість з даним іменем не була знайдена, пошук переходить всередину особливої властивості __proto__. Це відбувається рекурсивно, і цей процес називається "пошук у ланцюжку прототипів".

+ +

Властивість __proto__ встановлюється у момент конструювання об'єкту; вказує вона на властивість prototype конструктора. Тобто вираз new Foo() створює об'єкт із__proto__ == Foo.prototype. Відповідно, зміни у Foo.prototype впливають на пошук властивості всіх об'єктів, створених через new Foo().

+ +

Кожен об'єкт має властивість __proto__ (за винятком Object); кожна функція має властивість prototype. Тобто об'єкти можуть відноситись один до одного згідно "прототипного наслідування". Перевірити наслідування можна, порівнюючи властивість __proto__ об'єкту із об'єктом prototype функції. JavaScript надає скорочення: оператор instanceof порівнює об'єкт і функцію, і повертає true, якщо об'єкт є нащадком прототипу функції. Наприклад:

+ +
var f = new Foo();
+var isTrue = (f instanceof Foo);
+ +

Для більш докладного прикладу, припустимо, що у нас є набір визначень із показаних у Наслідування властивостей. Створімо об'єкт Engineer:

+ +
var chris = new Engineer('Pigman, Chris', ['jsd'], 'fiji');
+
+ +

Наступні вирази стосовно цього об'єкту являються істинними:

+ +
chris.__proto__ == Engineer.prototype;
+chris.__proto__.__proto__ == WorkerBee.prototype;
+chris.__proto__.__proto__.__proto__ == Employee.prototype;
+chris.__proto__.__proto__.__proto__.__proto__ == Object.prototype;
+chris.__proto__.__proto__.__proto__.__proto__.__proto__ == null;
+
+ +

Враховуючи це, ми можемо ось так написати функцію instanceOf:

+ +
function instanceOf(object, constructor) {
+   object = object.__proto__;
+   while (object != null) {
+      if (object == constructor.prototype)
+         return true;
+      if (typeof object == 'xml') {
+        return constructor.prototype == XML.prototype;
+      }
+      object = object.__proto__;
+   }
+   return false;
+}
+
+ +
Зверніть увагу, що: ця реалізація додатково перевіряє відношення об'єкту до типу "xml",  щоб обійти особливість уявлення XML-об'єктіву останніх версіях JavaScript. Дивіться {{ bug(634150) }}, якщо вам потрібна докладніша інформація.
+ +

Наступні вирази із визначеною вище функцією instanceOf являються істинними:

+ +
instanceOf(chris, Engineer)
+instanceOf(chris, WorkerBee)
+instanceOf(chris, Employee)
+instanceOf(chris, Object)
+
+ +

Проте такий приклад в результаті видасть false:

+ +
instanceOf(chris, SalesPerson)
+
+ +

Глобальна інформація у конструкторах

+ +

Потрібно бути уважним при створенні конструкторів, якщо ви задаєте в них якісь глобальні дані. Наприклад, припустимо, нам потрібно автоматично задавати унікальний ID кожному новому робітнику. Ви можете об'явити Employee так:

+ +
var idCounter = 1;
+
+function Employee(name, dept) {
+   this.name = name || '';
+   this.dept = dept || 'general';
+   this.id = idCounter++;
+}
+
+ +

Згідно цього визначення Employee, під час створення нового екземпляру конструктор призначає йому наявний ID, і потім підвищує на 1 глобальний лічильник ID. Тобто, якщо виконати наступні інструкції, victoria.id буде 1, а harry.id — 2:

+ +
var victoria = new Employee('Pigbert, Victoria', 'pubs');
+var harry = new Employee('Tschopik, Harry', 'sales');
+
+ +

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

+ +
var idCounter = 1;
+
+function Employee(name, dept) {
+   this.name = name || '';
+   this.dept = dept || 'general';
+   this.id = idCounter++;
+}
+
+function Manager(name, dept, reports) {...}
+Manager.prototype = new Employee;
+
+function WorkerBee(name, dept, projs) {...}
+WorkerBee.prototype = new Employee;
+
+function Engineer(name, projs, mach) {...}
+Engineer.prototype = new WorkerBee;
+
+function SalesPerson(name, projs, quota) {...}
+SalesPerson.prototype = new WorkerBee;
+
+var mac = new Engineer('Wood, Mac');
+
+ +

Далі припустимо, що визначення, що опущені тут мають властивість base і викликають констуктор, що знаходиться вище у ланцюжку прототипів. У цьому випадку, у момент створення об'єкту mac, mac.id буде 5.

+ +

Залежно від застосування, таке додаткове збільшення лічильника може мати, чи не мати значення. Якщо для вас важливе справжнє значення лічильника, один із варіантів рішення матиме такий вигляд конструктора:

+ +
function Employee(name, dept) {
+   this.name = name || '';
+   this.dept = dept || 'general';
+   if (name)
+      this.id = idCounter++;
+}
+
+ +

При створенні екземпляру Employee для застосування в якості прототипу аргументи не задаються. Згідно цього визначення конструктора, коли ми не передаємо аргументи, конструктор не задає значення id та не оновлює лічильник. Таким чином, щоб отримати Employee із призначеним id, необхідно задати ім'я робітника. У цьому випадку mac.id буде дорівнювати 1.

+ +

Інший варіант  створювати копію об'єкту-прототипу Employee, щоб потім присвоювати її WorkerBee:

+ +
WorkerBee.prototype = Object.create(Employee.prototype);
+// instead of WorkerBee.prototype = new Employee
+
+ +

Відсутність множинного успадкування

+ +

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

+ +

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

+ +

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

+ +
function Hobbyist(hobby) {
+   this.hobby = hobby || 'scuba';
+}
+
+function Engineer(name, projs, mach, hobby) {
+   this.base1 = WorkerBee;
+   this.base1(name, 'engineering', projs);
+   this.base2 = Hobbyist;
+   this.base2(hobby);
+   this.machine = mach || '';
+}
+Engineer.prototype = new WorkerBee;
+
+var dennis = new Engineer('Doe, Dennis', ['collabra'], 'hugo');
+
+ +

Далі припустимо, що визначення WorkerBee відповідає вказаному вище у розділі. У цьому випадку об'ект dennis матиме такі значення властивостей:

+ +
dennis.name == 'Doe, Dennis';
+dennis.dept == 'engineering';
+dennis.projects == ['collabra'];
+dennis.machine == 'hugo';
+dennis.hobby == 'scuba';
+
+ +

Тобто dennis отримує поле hobby з конструктора Hobbyist. Однак, якщо ми потім додамо нову властивість до прототипу конструктора Hobbyist:

+ +
Hobbyist.prototype.equipment = ['mask', 'fins', 'regulator', 'bcd'];
+
+ +

Об'єкт dennis не успадковує цю нову властивість.

+ +
{{PreviousNext("Web/JavaScript/Guide/Working_with_Objects", "Web/JavaScript/Guide/Using_promises")}}
diff --git a/files/uk/web/javascript/guide/dokladno_pro_objectnu_model/index.html b/files/uk/web/javascript/guide/dokladno_pro_objectnu_model/index.html deleted file mode 100644 index 5e756710dd..0000000000 --- a/files/uk/web/javascript/guide/dokladno_pro_objectnu_model/index.html +++ /dev/null @@ -1,760 +0,0 @@ ---- -title: Докладно про об'єктну модель -slug: Web/JavaScript/Guide/Dokladno_pro_Objectnu_Model -tags: - - Guide - - Intermediate - - JavaScript - - Object -translation_of: Web/JavaScript/Guide/Details_of_the_Object_Model ---- -
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Working_with_Objects", "Web/JavaScript/Guide/Using_promises")}}
- -

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

- -

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

- -

Мови з класовою та прототипною моделлю

- -

Об'єктно-орієнтовані мови з класовою моделлю, такі як Java і C++, засновані на концепції двох окремих сутностей: класів та екземплярів.

- - - -

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

- -

Задання і визначення класу

- -

У мовах із класовою моделлю, класс задається у окремому визначенні класу. У цому визначенні можна вказати особливі методи, що називаються конструкторами, щоб створити екземпляри класу. Метод-конструктор може задати початкові значення властивостей екземпляру, і виконати якісь інші задачі прямо у момент створення. Для створення екземплярів застосовується оператор new у комбінації із методом-конструктором.

- -

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

- -

 

- -
-

Зауважте, що ECMAScript 2015 вводить визначення класу:

- -
-

Класи JavaScript, введені стандартом ECMAScript 2015, є лише синтаксичним цукром поверх уже наявного у JavaScript прототипного наслідування. Тобто ці класи не вводять у JavaScript нової моделі наслідуваня.

-
-
- -

 

- -

Дочірні класи і наслідування

- -

У мові з класовою моделлю наслідкування ієрархія класів створюється через визначення класу. У цьому визначенні можна окремо вказати, що новий клас являється дочірнім стосовно уже наявного класу. Дочірній клас отримає всі властивості батьківського і може привнести нові (або ж змінити успадковані). Наприклад, припустимо, що клас Employee включає в себе лише поля name та dept, і Manager - це дочірній клас Employee, що додає властивість reports. У цьому випадку, екземпляр класу Manager матиме три властивості: name, dept, та reports.

- -

JavaScript реалізовує наслідування дещо інакше. Він дозволяє пов'язувати об'єкт-прототип із будь-якою фукнцією-конструктором. Тобто ви можете точнісінько реалізувати приклад EmployeeManager, проте використовуючи дещо інші терміни. Спершу ви визначаєте конструктор Employee, задаючи властивості name та dept. Далі ви визначаєте фукнцію-конструктор Manager, що викликає конструктор Employee та задає властивість reports. Насамкінець, призначаєте новий об'єкт, отриманий з Employee.prototype в якості прототипу конструктора Manager. Надалі, при створенні екземпляра Manager він наслідує властивості name і dept з об'єкту Employee.

- -

Додавання і видалення властивостей

- -

Зазвичай у мовах із класовою моделлю наслідування класи створюються під час компіляції, а екземпляри класів - під час компіляції чи виконання програми. Після того, як його було визначено, не можна змінити кількість або тип його властивостей. Однак, у JavaScript можна додавати чи видаляти властивості будь-якого об'єкту безпосередньо під час виконання програми. Якщо додати нову властивість до об'єкту-прототипу певного набору об'єктів, вони всі також отримають цю властивість.

- -

Підсумок відмінностей класової і прототипної моделей

- -

Наступна таблиця надає короткий підсумок цих відмінностей. Решта розділу розкриває деталі застосування JavaScript-конструкторів і прототипів для створення ієрархії об'єктів, та порівнює це із тим, як би це робилось у Java.

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

Приклад із робітником "Employee"

- -

Надалі у розділі ієрархія робітників, що показана на наступному зображенні.

- -
-
-

Проста ієрархія об'єктів, сформована із наступних елементів:

- -

-
- -
-
    -
  • Employee має поля name (із порожнім рядком в якості значення за замовчуванням) та dept (у якого значення за замовчуванням — "general").
  • -
  • Manager заснований на Employee. Він додає властивість reports  (за замовчуванням містить порожній масив для об'єктів Employee).
  • -
  • WorkerBee також заснований на Employee. Він додає властивість projects (за замовчуванням містить порожній масив, призначений для рядків).
  • -
  • SalesPerson заснований на WorkerBee. Він додає властивість quota (за замовчуванням — число 100). Він також перевизначае властивість dept, надаючи їй нове значенням "sales" (що означає, що всі SalesPerson відносяться до одного відділу).
  • -
  • Engineer заснований на WorkerBee. Він додає властивість machine (значення за замовчуванням — порожній рядок) і перевизначає властивість dept, задаючи їй значення "engineering".
  • -
-
-
- -

Створення ієрархії

- -

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

- -

Цей розділ показує, як використовувати дуже прості (і відносно негнучкі) визначення, і таким чином демонструє, як отримати робочий механізм наслідування. У цих визначеннях не можна задати жодного значення при створенні об'єкту — він отримає властивості із значеннями за замовчуванням, які можна буде змінити пізніше.

- -

У реальному додатку ви б, ймовірно, визначали конструктор, що дозволяє задавати значення в момент створення об'єкту (докладніше у Більш гнучкі конструктори). А наразі ці прості визначення покажуть, як загалом відбувається наслідування.

- -

Наступні визначення Employee у Java та JavaScript ідентичні. Єдина відмінність — у Java необхідно явно вказувати тип кожної властивості, на відміну від JavaScript (так як Java — мова із сильною типізацією, а JavaScript — із слабкою).

- -
-

JavaScript

- -
function Employee() {
-  this.name = '';
-  this.dept = 'general';
-}
-
- -


- Java

- -
public class Employee {
-   public String name = "";
-   public String dept = "general";
-}
-
-
- -

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

- -
-

JavaScript

- -
function Manager() {
-  Employee.call(this);
-  this.reports = [];
-}
-Manager.prototype =
-    Object.create(Employee.prototype);
-Manager.prototype.constructor = Manager;
-
-function WorkerBee() {
-  Employee.call(this);
-  this.projects = [];
-}
-WorkerBee.prototype =
-    Object.create(Employee.prototype);
-WorkerBee.prototype.constructor = WorkerBee;
-
- -


- Java

- -
public class Manager extends Employee {
-   public Employee[] reports =
-       new Employee[0];
-}
-
-
-
-public class WorkerBee extends Employee {
-   public String[] projects = new String[0];
-}
-
-
-
-
- -

 

- -

Визначення Engineer та SalesPerson створюють об'єкти, що наслідуються вже від WorkerBee, а, отже, і від Employee. Об'єкти цих типів мають властивості всіх об'єктів вище у ланцюжку наслідування. Надодачу, ці визначення перевизначають успадковані значення поля dept, змінюючи їх відповідно до нового типу.

- -
-

JavaScript

- -
function SalesPerson() {
-   WorkerBee.call(this);
-   this.dept = 'sales';
-   this.quota = 100;
-}
-SalesPerson.prototype =
-    Object.create(WorkerBee.prototype);
-SalesPerson.prototype.constructor = SalesPerson;
-
-function Engineer() {
-   WorkerBee.call(this);
-   this.dept = 'engineering';
-   this.machine = '';
-}
-Engineer.prototype =
-    Object.create(WorkerBee.prototype);
-Engineer.prototype.constructor = Engineer;
-
- -


- Java

- -
public class SalesPerson extends WorkerBee {
-   public String dept = "sales";
-   public double quota = 100.0;
-}
-
-
-public class Engineer extends WorkerBee {
-   public String dept = "engineering";
-   public String machine = "";
-}
-
-
-
- -

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

- -
-

Зауважте, що: термін екземпляр має специфічний технічний зміст у мовах із класовою моделлю. У цих мовах екземпляр являється окремою реалізацією класу і корінним чином відрізняється від його визначення. У JavaScript, "екземпляр" не має такого особливого змісту, бо сам JavaScript не має такої значної відмінності класів від їх реалізацій. Однак, у контексті JavaScript, "екземпляр" може неформально позначати об'єкт, створений певною функцією-конструктором. Тому, згідно наступного прикладу, можна неформально стверджувати, що jane є екземпляром класу Engineer. Так само, хоча терміни предок, нащадок, дочірній і батьківський класи не мають формального смісту в JavaScript, їх можна застосовувати для позначення об'єктів, що знаходяться вище чи нижче у ланцюжку прототипів.

-
- -

Створення об'єктів за допомогою простих визначень

- -
-

Ієрархія об'єктів

- -

Наступна ієрархія створена за допомогою коду у правій частині.

- -

- -

Окремі об'єкти = Jim, Sally, Mark, Fred, Jane, etc.
- "Екземпляри", створені конструктором

- -
var jim = new Employee;
-// Дужки можна опустити, якщо
-// конструктор не приймає аргументів.
-// jim.name має значення ''
-// jim.dept має значення 'general'
-
-var sally = new Manager;
-// sally.name має значення ''
-// sally.dept має значення 'general'
-// sally.reports має значення []
-
-var mark = new WorkerBee;
-// mark.name має значення ''
-// mark.dept має значення 'general'
-// mark.projects має значення []
-
-var fred = new SalesPerson;
-// fred.name має значення ''
-// fred.dept має значення 'sales'
-// fred.projects має значення []
-// fred.quota має значення 100
-
-var jane = new Engineer;
-// jane.name має значення ''
-// jane.dept має значення 'engineering'
-// jane.projects має значення []
-// jane.machine має значення ''
-
-
- -

Властивості (поля) об'єкту

- -

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

- -

Наслідування властивостей

- -

Припустимо, такою інструкцією ви створили екземпляр WorkerBee — об'єкт mark:

- -
var mark = new WorkerBee;
-
- -

Коли JavaScript бачить оператор new, він створює загальний об'єкт і неявно встановлює WorkerBee.prototype значенням внутрішньої властивості [[Prototype]], і передає цей новий об'єкт як значення this до фукнції-конструктора WorkerBee. Внутрішня властивість [[Prototype]] визначає ланцюжок прототипів для виводу значень полів. Коли ці властивості задані, JavaScript повертає новий об'єкт, а інструкція присвоєння задає його в якості значення змінної mark.

- -

Описаний процес явно не встановлює значення об'єкту mark для властивостей (локальні значення), які mark наслідує з ланцюжка прототипів. Коли ви запитуєте значення властивості, JavaScript в першу чергу перевіряє наявність цього значення у об'єкті, і повертає його, якщо знаходить. Якщо ж ні, JavaScript перевіряє весь ланцюжок прототипів (за допомогою властивості [[Prototype]]). Якщо об'єкт у ланцюжку має таку властивість - буде повернуто її значення (або повідомлення, що об'єкт не має такої властивості, якщо її все-таки не було знайдено). Таким чином, об'єкт mark має наступні властивості і значення:

- -
mark.name = '';
-mark.dept = 'general';
-mark.projects = [];
-
- -

З конструктора Employee об'єкту mark призначено локальні значення для властивостей name та dept, а з конструктора WorkerBee — значення властивості projects. Таким чином ми отримуємо наслідування властивостей і їх значень у JavaScript. Деякі тонкощі цього процесу додатково висвітлені у Іще раз про наслідування властивостей.

- -

Так як ці конструктори не дозволяють задати специфічні для екземпляру значення, це являється загальним прикладом. В якості значень властивостей взяті значення за замовчуванням, що розповсюджуються на всі об'єкти, створені на основі WorkerBee. Звісно, значення цих властивостей можна змінити. Наприклад, так можна встановити їх значення для об'єкту mark:

- -
mark.name = 'Doe, Mark';
-mark.dept = 'admin';
-mark.projects = ['navigator'];
- -

Додавання властивостей

- -

У JavaScript, можна додавати властивості до об'єкту безпосередно під час виконання. Ви не обмежені застосуванням лише властивостей, наданих конструктором. Щоб додати нову властивість до окремого об'єкту, просто призначте йому нове значення, як наведено далі:

- -
mark.bonus = 3000;
-
- -

Тепер об'єкт mark містить властивість bonus, проте більше ніхто із WorkerBee її не має.

- -

Якщо додати нову властивість до об'єкту-прототипу іншого конструктора, то ця властивість з'явиться у всіх об'єктів, що наслідують властивості від прототипу. Наприклад, ось так можна додати властивість specialty всім робітникам:

- -
Employee.prototype.specialty = 'none';
-
- -

Як тільки JavaScript виконає інструкцію, об'єкт mark матиме властивість specialty із значенням "none". Наступна схема ілюструє ефект від додавання цієї властивості до прототипу Employee і її перевизначення у прототипі Engineer.

- -


- Додавання властивостей

- -

Більш гнучкі конструктори

- -

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

- -


- Задання властивостей у конструкторі, варіант 1

- -

Таблиця далі показує визначення цих об'єктів у Java і JavaScript.

- -
-

JavaScript

- -

Java

-
- -
-
function Employee(name, dept) {
-  this.name = name || '';
-  this.dept = dept || 'general';
-}
-
- -

 

- -

 

- -

 

- -

 

- -

 

- -
public class Employee {
-   public String name;
-   public String dept;
-   public Employee () {
-      this("", "general");
-   }
-   public Employee (String name) {
-      this(name, "general");
-   }
-   public Employee (String name, String dept) {
-      this.name = name;
-      this.dept = dept;
-   }
-}
-
-
- -
-
function WorkerBee(projs) {
-
- this.projects = projs || [];
-}
-WorkerBee.prototype = new Employee;
-
- -

 

- -

 

- -

 

- -
public class WorkerBee extends Employee {
-   public String[] projects;
-   public WorkerBee () {
-      this(new String[0]);
-   }
-   public WorkerBee (String[] projs) {
-      projects = projs;
-   }
-}
-
-
- -
-
-function Engineer(mach) {
-   this.dept = 'engineering';
-   this.machine = mach || '';
-}
-Engineer.prototype = new WorkerBee;
-
- -

 

- -

 

- -

 

- -
public class Engineer extends WorkerBee {
-   public String machine;
-   public Engineer () {
-      dept = "engineering";
-      machine = "";
-   }
-   public Engineer (String mach) {
-      dept = "engineering";
-      machine = mach;
-   }
-}
-
-
- -

Ці JavaScript-визначення застосовують особливу ідіому для задання значення за замовчуванням:

- -
this.name = name || '';
-
- -

Логічний оператор АБО у JavaScript (||) обчислює перше значення. Якщо результат можна привести до true, оператор повертає його, а інакше - значення другого аргументу. Таким чином, ця стрічка коду перевіряє, чи name має якесь корисне значення для властивості name. Якщо так — this.name отримує її значення, а інакше значенням this.name стає порожній рядок. У розділі ця ідіома застосовується для стислості; однак вона може бути неочевидною на перший погляд.

- -
-

Зауважте, що: це може працювати не так, як очікується, якщо конструктор викликається із аргументами, що приводяться до false (число 0 і порожній рядок (""). У цьому випадку буде обрано значення за замовчуванням.

-
- -

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

- -
var jane = new Engineer('belau');
-
- -

Властивості Jane тепер виглядають так:

- -
jane.name == '';
-jane.dept == 'engineering';
-jane.projects == [];
-jane.machine == 'belau';
-
- -

Зауважте, що таким визначенням ви не можете задати первинне значення для наслідуваного поля name. Для задання значення наслідуваним властивостям у JavaScript, необхідно додати трохи більше коду до фукнції-конструктора.

- -

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

- -


- Задання властивостей у конструкторі, варіант 2

- -

Розгляньмо детальніше одне із цих визначень. Ось новий конструктор Engineer:

- -
function Engineer(name, projs, mach) {
-  this.base = WorkerBee;
-  this.base(name, 'engineering', projs);
-  this.machine = mach || '';
-}
-
- -

Припустимо, ви ось так створюєте новий об'єкт Engineer:

- -
var jane = new Engineer('Doe, Jane', ['navigator', 'javascript'], 'belau');
-
- -

Тут JavaScript виконує наступні кроки:

- -
    -
  1. Оператор new створює загальний об'єкт і задає Engineer.prototype значенням його властивості __proto__ .
  2. -
  3. Оператор new передає новий об'єкт у конструктор Engineer в якості значення this.
  4. -
  5. Конструктор створює нову властивість base для цього об'єкту і присвоює їй значення конструктора WorkerBee. Так конструктор WorkerBee стає методом об'єкту Engineer. Назва властивості base не є чимось особливим. Ви можете використати будь-яке дозволене ім'я властивості, а base просто звучить змістовно для даного випадку.
  6. -
  7. Конструктор викликає метод base, передаючи в нього два своїх аргументи ("Doe, Jane" і ["navigator", "javascript"]) і новий рядок "engineering". Явно вказаний "engineering" у конструкторі означає, що всі об'єкти Engineer матимуть одне значення для наслідуваної властивості dept, і це значення заміщує успадковане від Employee.
  8. -
  9. Так як метод base належить Engineer, всередині виклику base JavaScript прив'язує значення this до об'єкту, створеного на першому етапі. Таким чином функція WorkerBee, в свою чергу, передає аргументи "Doe, Jane" та "engineering" до конструктора Employee. Після повернення з конструктора Employee функція WorkerBee задає останнім аргументом поле projects.
  10. -
  11. Після повернення з методу base конструктор Engineer ініціалізовує властивість machine об'єкту значенням "belau".
  12. -
  13. Після повернення з конструктору JavaScript присвоює новий об'єкт змінній jane.
  14. -
- -

Може скластися враження, що, викликавши конструтктор WorkerBee зсередини конструктора Engineer, ви вкажете наслідування відповідно для об'єктів Engineer. Насправді виклик конструктора WorkerBee гарантує, що об'єкт Engineer матиме всі властивості, вказані у всіх викликаних конструкторах. Однак, якщо пізніше додати нові властивості до прототипів Employee чи WorkerBee, вони не будуть успадковані об'єктом Engineer. Припустимо, у нас є наступні інструкції:

- -
function Engineer(name, projs, mach) {
-  this.base = WorkerBee;
-  this.base(name, 'engineering', projs);
-  this.machine = mach || '';
-}
-var jane = new Engineer('Doe, Jane', ['navigator', 'javascript'], 'belau');
-Employee.prototype.specialty = 'none';
-
- -

Об'єкт jane не наслідує властивість specialty. Вам все ще необхідно явно вказувати прототип для гарантії динамічного наслідування. Натомість розглянемо такий набір інструкцій:

- -
function Engineer(name, projs, mach) {
-  this.base = WorkerBee;
-  this.base(name, 'engineering', projs);
-  this.machine = mach || '';
-}
-Engineer.prototype = new WorkerBee;
-var jane = new Engineer('Doe, Jane', ['navigator', 'javascript'], 'belau');
-Employee.prototype.specialty = 'none';
-
- -

Тепер значенням властивості specialty об'єкту jane являється "none".

- -

Іншим способом наслідування являється використання методів call() чи apply(). Ось дві еквівалентні ділянки коду:

- -
-
function Engineer(name, projs, mach) {
-  this.base = WorkerBee;
-  this.base(name, 'engineering', projs);
-  this.machine = mach || '';
-}
-
- -
function Engineer(name, projs, mach) {
-  WorkerBee.call(this, name, 'engineering', projs);
-  this.machine = mach || '';
-}
-
-
- -

Використання методу call() дає більш чисту реалізацію, так як base більше не потрібен.

- -

Іще раз про наслідування властивостей

- -

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

- -

Локальні і успадковані змінні

- -

Коли ви викликаєте властивість, JavaScript виконує наступні кроки (як описано вище у главі):

- -
    -
  1. Перевіряє наявність цієї змінної прямо в об'єкті, і повертає її значення, якщо знаходить.
  2. -
  3. Якщо її немає серед локальних змінних - перевіряє ланцюжок прототипів (використовуючи властивість __proto__).
  4. -
  5. Якщо прототип у ланцюжку має значення вказаної властивості — повертає це значення.
  6. -
  7. Якщо вказана властивість не знайдена — значить, об'єкт її не має.
  8. -
- -

Результат виконання цих кроків залежить від того, як ви задаєте значення і об'єкти.  Перший приклад мав такі визначення:

- -
function Employee() {
-  this.name = '';
-  this.dept = 'general';
-}
-
-function WorkerBee() {
-  this.projects = [];
-}
-WorkerBee.prototype = new Employee;
-
- -

Припустимо, враховуючи ці визначення, що наступною інструкцією ви створили екземпляр WorkerBee у змінній amy:

- -
var amy = new WorkerBee;
-
- -

Об'єкт amy має одну локальну змінну — projects. Значення властивостей name та dept насправді не належать amy, і тому виводяться через поле її поле __proto__. Отже, amy має такі значення властивостей:

- -
amy.name == '';
-amy.dept == 'general';
-amy.projects == [];
-
- -

Тепер припустимо, що ви змінили значення властивості name у прототипі, асоційованому з Employee:

- -
Employee.prototype.name = 'Unknown';
-
- -

На перший погляд, можна очікувати, що нове значення пошириться на всі екземпляри Employee. Однак, це не так.

- -

При створенні будь-якого екземпляру об'єкту Employee, цей екземпляр отримає локальне значення для властивості name (порожній рядок). Тобто, коли ми задаємо прототип WorkerBee шляхом створення нового об'єкту Employee, WorkerBee.prototype має локальне значення властивості name. Отже, коли JavaScript шукає властивість name об'єкту amy (екземпляр WorkerBee), він знаходить місцеве значення властивості у WorkerBee.prototype. І тому він не намагається шукати далі в ланцюжку прототипів до Employee.prototype.

- -

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

- -
function Employee() {
-  this.dept = 'general';    // Зауважте, що тут немає this.name (локальної змінної)
-}
-Employee.prototype.name = '';    // Одна копія
-
-function WorkerBee() {
-  this.projects = [];
-}
-WorkerBee.prototype = new Employee;
-
-var amy = new WorkerBee;
-
-Employee.prototype.name = 'Unknown';
-
- -

У цьому випадку, властивість amy name стане "Unknown".

- -

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

- -

Визначення відносин екземпляру

- -

Пошук властивості у JavaScript виконується серед власних властивостей об'єкту, і, якщо властивість з даним іменем не була знайдена, пошук переходить всередину особливої властивості __proto__. Це відбувається рекурсивно, і цей процес називається "пошук у ланцюжку прототипів".

- -

Властивість __proto__ встановлюється у момент конструювання об'єкту; вказує вона на властивість prototype конструктора. Тобто вираз new Foo() створює об'єкт із__proto__ == Foo.prototype. Відповідно, зміни у Foo.prototype впливають на пошук властивості всіх об'єктів, створених через new Foo().

- -

Кожен об'єкт має властивість __proto__ (за винятком Object); кожна функція має властивість prototype. Тобто об'єкти можуть відноситись один до одного згідно "прототипного наслідування". Перевірити наслідування можна, порівнюючи властивість __proto__ об'єкту із об'єктом prototype функції. JavaScript надає скорочення: оператор instanceof порівнює об'єкт і функцію, і повертає true, якщо об'єкт є нащадком прототипу функції. Наприклад:

- -
var f = new Foo();
-var isTrue = (f instanceof Foo);
- -

Для більш докладного прикладу, припустимо, що у нас є набір визначень із показаних у Наслідування властивостей. Створімо об'єкт Engineer:

- -
var chris = new Engineer('Pigman, Chris', ['jsd'], 'fiji');
-
- -

Наступні вирази стосовно цього об'єкту являються істинними:

- -
chris.__proto__ == Engineer.prototype;
-chris.__proto__.__proto__ == WorkerBee.prototype;
-chris.__proto__.__proto__.__proto__ == Employee.prototype;
-chris.__proto__.__proto__.__proto__.__proto__ == Object.prototype;
-chris.__proto__.__proto__.__proto__.__proto__.__proto__ == null;
-
- -

Враховуючи це, ми можемо ось так написати функцію instanceOf:

- -
function instanceOf(object, constructor) {
-   object = object.__proto__;
-   while (object != null) {
-      if (object == constructor.prototype)
-         return true;
-      if (typeof object == 'xml') {
-        return constructor.prototype == XML.prototype;
-      }
-      object = object.__proto__;
-   }
-   return false;
-}
-
- -
Зверніть увагу, що: ця реалізація додатково перевіряє відношення об'єкту до типу "xml",  щоб обійти особливість уявлення XML-об'єктіву останніх версіях JavaScript. Дивіться {{ bug(634150) }}, якщо вам потрібна докладніша інформація.
- -

Наступні вирази із визначеною вище функцією instanceOf являються істинними:

- -
instanceOf(chris, Engineer)
-instanceOf(chris, WorkerBee)
-instanceOf(chris, Employee)
-instanceOf(chris, Object)
-
- -

Проте такий приклад в результаті видасть false:

- -
instanceOf(chris, SalesPerson)
-
- -

Глобальна інформація у конструкторах

- -

Потрібно бути уважним при створенні конструкторів, якщо ви задаєте в них якісь глобальні дані. Наприклад, припустимо, нам потрібно автоматично задавати унікальний ID кожному новому робітнику. Ви можете об'явити Employee так:

- -
var idCounter = 1;
-
-function Employee(name, dept) {
-   this.name = name || '';
-   this.dept = dept || 'general';
-   this.id = idCounter++;
-}
-
- -

Згідно цього визначення Employee, під час створення нового екземпляру конструктор призначає йому наявний ID, і потім підвищує на 1 глобальний лічильник ID. Тобто, якщо виконати наступні інструкції, victoria.id буде 1, а harry.id — 2:

- -
var victoria = new Employee('Pigbert, Victoria', 'pubs');
-var harry = new Employee('Tschopik, Harry', 'sales');
-
- -

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

- -
var idCounter = 1;
-
-function Employee(name, dept) {
-   this.name = name || '';
-   this.dept = dept || 'general';
-   this.id = idCounter++;
-}
-
-function Manager(name, dept, reports) {...}
-Manager.prototype = new Employee;
-
-function WorkerBee(name, dept, projs) {...}
-WorkerBee.prototype = new Employee;
-
-function Engineer(name, projs, mach) {...}
-Engineer.prototype = new WorkerBee;
-
-function SalesPerson(name, projs, quota) {...}
-SalesPerson.prototype = new WorkerBee;
-
-var mac = new Engineer('Wood, Mac');
-
- -

Далі припустимо, що визначення, що опущені тут мають властивість base і викликають констуктор, що знаходиться вище у ланцюжку прототипів. У цьому випадку, у момент створення об'єкту mac, mac.id буде 5.

- -

Залежно від застосування, таке додаткове збільшення лічильника може мати, чи не мати значення. Якщо для вас важливе справжнє значення лічильника, один із варіантів рішення матиме такий вигляд конструктора:

- -
function Employee(name, dept) {
-   this.name = name || '';
-   this.dept = dept || 'general';
-   if (name)
-      this.id = idCounter++;
-}
-
- -

При створенні екземпляру Employee для застосування в якості прототипу аргументи не задаються. Згідно цього визначення конструктора, коли ми не передаємо аргументи, конструктор не задає значення id та не оновлює лічильник. Таким чином, щоб отримати Employee із призначеним id, необхідно задати ім'я робітника. У цьому випадку mac.id буде дорівнювати 1.

- -

Інший варіант  створювати копію об'єкту-прототипу Employee, щоб потім присвоювати її WorkerBee:

- -
WorkerBee.prototype = Object.create(Employee.prototype);
-// instead of WorkerBee.prototype = new Employee
-
- -

Відсутність множинного успадкування

- -

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

- -

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

- -

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

- -
function Hobbyist(hobby) {
-   this.hobby = hobby || 'scuba';
-}
-
-function Engineer(name, projs, mach, hobby) {
-   this.base1 = WorkerBee;
-   this.base1(name, 'engineering', projs);
-   this.base2 = Hobbyist;
-   this.base2(hobby);
-   this.machine = mach || '';
-}
-Engineer.prototype = new WorkerBee;
-
-var dennis = new Engineer('Doe, Dennis', ['collabra'], 'hugo');
-
- -

Далі припустимо, що визначення WorkerBee відповідає вказаному вище у розділі. У цьому випадку об'ект dennis матиме такі значення властивостей:

- -
dennis.name == 'Doe, Dennis';
-dennis.dept == 'engineering';
-dennis.projects == ['collabra'];
-dennis.machine == 'hugo';
-dennis.hobby == 'scuba';
-
- -

Тобто dennis отримує поле hobby з конструктора Hobbyist. Однак, якщо ми потім додамо нову властивість до прототипу конструктора Hobbyist:

- -
Hobbyist.prototype.equipment = ['mask', 'fins', 'regulator', 'bcd'];
-
- -

Об'єкт dennis не успадковує цю нову властивість.

- -
{{PreviousNext("Web/JavaScript/Guide/Working_with_Objects", "Web/JavaScript/Guide/Using_promises")}}
diff --git a/files/uk/web/javascript/guide/expressions_and_operators/index.html b/files/uk/web/javascript/guide/expressions_and_operators/index.html new file mode 100644 index 0000000000..fdfbc0659b --- /dev/null +++ b/files/uk/web/javascript/guide/expressions_and_operators/index.html @@ -0,0 +1,925 @@ +--- +title: Вирази та оператори +slug: Web/JavaScript/Guide/Вирази_та_оператори +tags: + - JavaScript + - Оператори + - Посібник + - вирази +translation_of: Web/JavaScript/Guide/Expressions_and_Operators +--- +
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Functions", "Web/JavaScript/Guide/Numbers_and_dates")}}
+ +

Цей розділ описує вирази та оператори JavaScript, такі як присвоювання, порівняння, арифметичні оператори, бітові, логічні, рядкові, тернарний та інші.

+ +

Повний та детальний список операторів та виразів також доступний за посиланням.

+ +

Оператори

+ +

JavaScript має наступні типи операторів. Ця секція описує оператори, а також містить інформацію щодо їхніх пріоритетів.

+ + + +

JavaScript має як бінарні, так і унарні оператори, а також один особливий тернарний оператор - умовний оператор. Бінарному оператору потрібні два операнди - один перед оператором, інший після оператора:

+ +
операнд1 оператор операнд2
+
+ +

Наприклад, 3+4 чи x*y.

+ +

Унарний оператор потребує лише одного операнду до чи після оператора:

+ +
оператор операнд
+
+ +

чи

+ +
операнд оператор
+
+ +

Наприклад, x++ чи ++x.

+ +

Оператори присвоєння

+ +

Оператор присвоєння присвоює своєму лівому операнду значення на підставі значення правого операнда. Простим оператором присвоєння є оператор дорівнює (=), який присвоює значення свого правого операнда лівому операнду. Таким чином, x = y присвоює значення змінної y змінній x.

+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Складені оператори присвоювання
НазваОператор скороченого записуЗначення
Присвоєнняx = yx = y
Присвоєння з додаваннямx += yx = x + y
Присвоєння з відніманнямx -= yx = x - y
Присвоєння з множеннямx *= yx = x * y
Присвоєння з діленнямx /= yx = x / y
Присвоєння остачіx %= yx = x % y
Присвоєння з піднесенням до степеня{{experimental_inline}}x **= yx = x ** y
Присвоєння з лівим зсувомx <<= yx = x << y
Присвоєння з правим зсувомx >>= yx = x >> y
Присвоєння з беззнаковим правим зсувомx >>>= yx = x >>> y
Присвоєння з побітовим Іx &= yx = x & y
Присвоєння з виключним побітовим АБОx ^= yx = x ^ y
Присвоєння з побітовим АБОx |= yx = x | y
+ +

Деструктуризація

+ +

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

+ +
var foo = ['один', 'два', 'три'];
+
+// без деструктуризації
+var one   = foo[0];
+var two   = foo[1];
+var three = foo[2];
+
+// із деструктуризацією
+var [one, two, three] = foo;
+
+ +

Оператори порівняння

+ +

Оператор порівняння порівнює свої операнди та повертає логічне значення, базуючись на істинності порівняння. Операнди можуть бути числовими, рядковими, логічними значеннями або об'єктами. Рядки порівнюються згідно стандартного лексикографічного порядку, з використанням значень Unicode. У більшості випадків, якщо два операнди не належать до одного типу, JavaScript намагається привести їх до належного для порівняння типу. Зазвичай це призводить до числового порівняння операндів. Єдиними винятками у конвертації типів під час порівняння є оператори === та !==, які виконують перевірку на строгу рівність та строгу нерівність. Ці оператори не намагаються перед перевіркою на рівність привести операнди до спільного типу. Наступна таблиця наводить оператори порівняння у контексті цього фрагменту коду:

+ +
var var1 = 3;
+var var2 = 4;
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Оператори порівняння
ОператорОписПриклади, які повертають true
Рівність (==)Повертає true, якщо оператори рівні.3 == var1 +

"3" == var1

+ 3 == '3'
Нерівність (!=)Повертає true, якщо оператори нерівні.var1 != 4
+ var2 != "3"
Строга рівність (===)Повертає true якщо оператори рівні та належать до одного типу. Дивіться також {{jsxref("Object.is")}} та однаковість у JS.3 === var1
Строга нерівність (!==)Повертає true, якщо оператори належать до одного типу, але нерівні, або належать до різних типів.var1 !== "3"
+ 3 !== '3'
Більше ніж (>)Повертає true, якщо лівий операнд більший за правий.var2 > var1
+ "12" > 2
Більше чи дорівнює (>=)Повертає true, якщо значення лівого операнда більше або дорівнює значенню правого операнда.var2 >= var1
+ var1 >= 3
Менше ніж (<)Повертає true, якщо лівий операнд менший за правий.var1 < var2
+ "2" < 12
Менше чи дорівнює (<=)Повертає true, якщо значення лівого операнда менше або дорівнює значенню правого операнда.var1 <= var2
+ var2 <= 5
+ +
+

Заувага: (=>) не оператор, а позначення для стрілкових функцій.

+
+ +

Арифметичні оператори

+ +

Арифметичний оператор приймає числові значення (літерали чи змінні) в якості операндів та повертає єдине числове значення. Стандартними арифметичними операторами є додавання (+), віднімання (-), множення (*) та ділення (/). Ці оператори працюють так само, як і в більшості інших мов програмування при використанні з числами з рухомою комою (зокрема, зауважте, що ділення на нуль повертає {{jsxref("Infinity")}}). Наприклад:

+ +
1 / 2; // 0.5
+1 / 2 == 1.0 / 2.0; // це дорівнює true
+
+ +

На додачу до стандартних арифметичних операцій (+, -, * /), JavaScript надає арифметичні операції, перечислені у наведеній нижче таблиці:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Арифметичні оператори
ОператорОписПриклад
Остача (%)Бінарний оператор. Повертає цілочисельну остачу від ділення двох операндів.12 % 5 повертає 2.
Інкремент (++)Унарний оператор. Додає до операнда одиницю. Якщо використовується як префіксний оператор (++x), повертає значення операнда після додавання одиниці; якщо використовується як постфіксний оператор (x++), повертає значення операнда перед додаванням одиниці.Якщо x дорівнює 3, тоді ++x присвоює x значення 4 та повертає 4, в той час, як x++ повертає 3 і лише тоді присвоює x значення 4.
Декремент (--)Унарний оператор. Віднімає одиницю від свого операнда. Повернене значення аналогічне поверненому значенню оператора інкременту.Якщо x дорівнює 3, тоді --x присвоює x значення 2 та повертає 2, в той час, як x-- повертає 3 і тільки тоді присвоює x значення 2.
Унарний мінус (-)Унарний оператор. Повертає операнд з протилежним знаком.Якщо x дорівнює 3, то -x повертає -3.
Унарний плюс (+)Унарний оператор. Намагається перетворити операнд на число, якщо він не є числом.+"3" повертає 3.
+ +true повертає 1.
Піднесення до степеня (**) {{experimental_inline}}Підносить основу степеня до показника степеня, тобто, основапоказник2 ** 3 повертає 8.
+ 10 ** -1 повертає 0.1.
+ +

Бітові оператори

+ +

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

+ +

Наступна таблиця наводить перелік бітових операторів JavaScript.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Бітові оператори
ОператорЗастосуванняОпис
Побітове І (AND)a & bПовертає одиницю на кожній позиції, де відповідні біти обох операндів дорівнюють одиницям.
Побітове АБО (OR)a | bПовертає нуль на кожній позиції, де відповідні біти обох операндів дорівнюють нулям.
Виключне побітове АБО (XOR)a ^ bПовертає нуль на кожній позиції, де відповідні біти однакові.
+ [Повертає один на кожній позиції, де відповідні біти мають різні значення.]
Побітове НЕ (NOT)~ aВиконує інверсію бітів операнду.
Лівий зсувa << bЗсуває a у двійковому представленні на b бітів ліворуч, заповнюючи позиції справа нулями.
Правий зсув з розширенням знакуa >> bЗсуває a у двійковому представленні на b бітів праворуч, відкидаючи зсунуті біти.
Правий зсув із заповненням нулямиa >>> bЗсуває a у двійковому представленні на b бітів праворуч, відкидаючи зсунуті біти та заповнюючи позиції зліва нулями.
+ +

Побітові логічні оператори

+ +

Концептуально побітові логічні оператори працюють наступним чином:

+ + + +

Наприклад, бінарним представленням числа дев'ять є 1001, а бінарним представленням п'ятнадцяти є 1111. Отже, коли бітові оператори застосовуються до цих величин, результати будуть наступні:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Приклади бітових операторів
ВиразРезультатДвійковий опис
15 & 991111 & 1001 = 1001
15 | 9151111 | 1001 = 1111
15 ^ 961111 ^ 1001 = 0110
~15-16~00000000...00001111 = 11111111...11110000
~9-10~00000000...00001001 = 11111111...11110110
+ +

Зауважте, що усі 32 біти інвертуються побітовим оператором НЕ, і що значення, в яких найстарший (перший зліва) біт дорівнює 1, відображають від'ємні числа (формат доповняльного коду).

+ +

Оператори бітового зсуву

+ +

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

+ +

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

+ +

Оператори зсуву наведені у наступній таблиці.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Оператори бітового зсуву
ОператорОписПриклад
Лівий зсув
+ (<<)
Цей оператор виконує зсув першого операнду на вказану кількість бітів ліворуч. Надлишкові біти, зсунуті ліворуч, відкидаються. Біти, додані справа, заповнюються нулями.9<<2 вертає 36, тому що число 1001, зсунуте на 2 біти ліворуч, стає 100100, тобто, 36.
Правий зсув з розширенням знаку (>>) +

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

+
9>>2 вертає 2, тому що число 1001, зсунуте на 2 біти праворуч, стає 10, тобто 2. Аналогічно, -9>>2 вертає -3,  тому що знак зберігається.
Правий зсув із заповненням нулями(>>>) +

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

+
19>>>2 вертає 4, тому що число 10011, зсунуте на 2 бітів праворуч, стає 100, тобто 4. Для невід'ємних чисел, правий зсув із заповненням нулями та правий зсув з розширенням знаку дають однаковий результат.
+ +

Логічні оператори

+ +

Логічні оператори застосовуються до булевих (логічних) значень; в цьому випадку вони повертають значення типу Boolean. Однак, оператори && та || насправді повертають значення одного з заданих операндів, тому, якщо ці оператори використовуються зі значеннями не булевого типу, вони повернуть значення не булевого типу. Логічні оператори описані у наведеній нижче таблиці.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Логічні оператори
ОператорЗастосуванняОпис
Логічне І (&&)expr1 && expr2Вертає вираз expr1, якщо він може бути перетворений на false; інакше, повертає expr2. Таким чином, при використанні з булевими значеннями && вертає true, якщо обидва операнди дорівнюють true; інакше, вертає false.
Логічне АБО (||)expr1 || expr2Вертає вираз expr1, якщо він може бути перетворений на true; інакше, вертає expr2. Таким чином, при використанні з булевими значеннями || вертає true, якщо будь-який з операндів дорівнює true; якщо обидва дорівнюють false, вертає false.
Логічне НЕ (!)!exprВертає false, якщо його єдиний операнд може бути перетворений на true; інакше, вертає true.
+ +

Прикладами виразів, які можуть бути перетворені на false, є ті, які повертають null, 0, NaN, порожній рядок ("") або undefined.

+ +

Наступний код демонструє приклади оператора && (логічне І).

+ +
var a1 =  true && true;     // t && t вертає true
+var a2 =  true && false;    // t && f вертає false
+var a3 = false && true;     // f && t вертає false
+var a4 = false && (3 == 4); // f && f вертає false
+var a5 = 'Кіт' && 'Пес';    // t && t вертає Пес
+var a6 = false && 'Кіт';    // f && t вертає false
+var a7 = 'Кіт' && false;    // t && f вертає false
+
+ +

Наступний код демонструє приклади оператора || (логічне АБО).

+ +
var o1 =  true || true;     // t || t вертає true
+var o2 = false || true;     // f || t вертає true
+var o3 =  true || false;    // t || f вертає true
+var o4 = false || (3 == 4); // f || f вертає false
+var o5 = 'Кіт' || 'Пес';    // t || t вертає Кіт
+var o6 = false || 'Кіт';    // f || t вертає Кіт
+var o7 = 'Кіт' || false;    // t || f вертає Кіт
+
+ +

Наступний код демонструє приклади оператора ! (логічне НЕ).

+ +
var n1 = !true;  // !t вертає false
+var n2 = !false; // !f вертає true
+var n3 = !'Кіт'; // !t вертає false
+
+ +

Коротке замикання обчислення

+ +

Оскільки логічні вирази обчислюються зліва направо, вони перевіряються на можливе "коротке замикання" обчислення за наступними правилами:

+ + + +

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

+ +

Рядкові оператори

+ +

На додачу до операторів порівняння, які можуть застосовуватись до рядкових значень, оператор конкатенації (+) об'єднує значення двох рядків, повертаючи інший рядок, який є об'єднанням рядків двох операндів.

+ +

Наприклад,

+ +
console.log('мій ' + 'рядок'); // консоль виводить рядок "мій рядок".
+ +

Скорочений оператор присвоєння += також може застосовуватись для конкатенації рядків.

+ +

Наприклад,

+ +
var mystring = 'алфа';
+mystring += 'віт'; // повертає "алфавіт" та присвоює це значення mystring.
+ +

Умовний (тернарний) оператор

+ +

Умовний оператор - єдиний оператор у JavaScript, який приймає три операнди. У оператора може бути одне чи два значення, в залежності від умови. Використовує наступний синтакс:

+ +
умова ? значення1 : значення2
+
+ +

Якщо умова дорівнює true, оператор повертає значення1.  В іншому випадку - значення2. Умовний оператор можна використовувати будь-де, де використовується звичайний оператор. Наприклад:

+ +
var status = (age >= 18) ? 'дорослий' : 'неповнолітній';
+
+ +

Ця інструкція присвоює значення "дорослий" змінній status, якщо значення age (вік) більше чи дорівнює 18. Інакше, вона присвоює змінній status значення "неповнолітній".

+ +

Оператор кома

+ +

Оператор кома (,) просто обчислює обидва свої операнди та повертає значення останнього операнда. Цей оператор найчастіше використовується всередині циклу for, що дозволяє оновлювати більше однієї змінної на кожному проході циклу.

+ +

Наприклад, якщо a є двовимірним масивом з 10 елементами по кожній стороні, наступний код використовує оператор кома, щоб оновити дві змінні одночасно. Код виводить значення діагональних елементів масиву:

+ +
for (var i = 0, j = 9; i <= j; i++, j--)
+  console.log('a[' + i + '][' + j + ']= ' + a[i][j]);
+
+ +

Унарні оператори

+ +

Унарна операція - це операція лише з одним операндом.

+ +

delete

+ +

Оператор delete видаляє об'єкт, властивість об'єкта або елемент за вказаним індексом у масиві. Синтаксис наступний:

+ +
delete objectName;
+delete objectName.property;
+delete objectName[index];
+delete property; // працює лише всередині конструкції with
+
+ +

де objectName є іменем об'єкта, property - існуюча властивість, а index - ціле число, що вказує розташування елемента у масиві.

+ +

Четверта форма працює лише всередині блоку with для видалення властивості об'єкта.

+ +

Ви можете використовувати оператор delete для видалення змінних, оголошених неявно, але не тих, що були оголошені оператором var.

+ +

Якщо оператор delete відпрацьовує успішно, значенням властивості чи елемента стає undefined. Оператор delete повертає true, якщо операція можлива; він повертає false, якщо операція неможлива.

+ +
x = 42;
+var y = 43;
+myobj = new Number();
+myobj.h = 4;    // створює властивість h
+delete x;       // вертає true (можна видалити властивість, оголошену неявно)
+delete y;       // вертає false (не можна видалити властивість, оголошену через var)
+delete Math.PI; // вертає false (не можна видаляти попередньо визначені властивості)
+delete myobj.h; // вертає true (можна видалити властивість, визначену користувачем)
+delete myobj;   // вертає true (можна видалити, якщо властивість оголошена неявно)
+
+ +
Видалення елементів масиву
+ +

Коли ви видаляєте елемент масиву, це не впливає на довжину масиву. Для прикладу, якщо ви видалите a[3], a[4] досі є a[4], а a[3] дорівнює undefined.

+ +

Коли оператор delete видаляє елемент масиву, цей елемент більше не існує у масиві. У наступному прикладі trees[3] видаляється оператором delete. Однак, адреса trees[3] досі доступна та повертає undefined.

+ +
var trees = ['секвоя', 'лавр', 'кедр', 'дуб', 'клен'];
+delete trees[3];
+if (3 in trees) {
+  // це не виконається
+}
+
+ +

Якщо вам потрібно, щоб елемент існував, але мав значення undefined, скористайтесь ключовим словом undefined замість оператора delete. У наступному прикладі trees[3] присвоюється значення undefined, але елемент масиву досі існує:

+ +
var trees = ['секвоя', 'лавр', 'кедр', 'дуб', 'клен'];
+trees[3] = undefined;
+if (3 in trees) {
+  // це виконається
+}
+
+ +

typeof

+ +

Оператор typeof використовується наступним чином:

+ +
typeof операнд
+typeof (операнд)
+
+ +

Оператор typeof повертає рядок, що вказує тип необчисленого операнда. Операнд є рядком, змінною, ключовим словом чи об'єктом, для якого треба повернути тип. Круглі дужки є необов'язковими.

+ +

Припустимо, ви визначили наступні змінні:

+ +
var myFun = new Function('5 + 2');
+var shape = 'коло';
+var size = 1;
+var foo = ['Яблуко', 'Манго', 'Апельсин'];
+var today = new Date();
+
+ +

Оператор typeof вертає наступні результати для цих змінних:

+ +
typeof myFun;       // вертає "function"
+typeof shape;       // вертає "string"
+typeof size;        // вертає "number"
+typeof foo;         // вертає "object"
+typeof today;       // вертає "object"
+typeof doesntExist; // вертає "undefined"
+
+ +

Для ключових слів true та null оператор typeof вертає наступні результати:

+ +
typeof true; // вертає "boolean"
+typeof null; // вертає "object"
+
+ +

Для числа та рядка оператор typeof вертає наступні результати:

+ +
typeof 62;            // вертає "number"
+typeof 'Hello world'; // вертає "string"
+
+ +

Для значень властивостей оператор typeof вертає тип значення, яке містить ця властивість:

+ +
typeof document.lastModified; // вертає "string"
+typeof window.length;         // вертає "number"
+typeof Math.LN2;              // вертає "number"
+
+ +

Для методів та функцій оператор typeof вертає наступні результати:

+ +
typeof blur;        // вертає "function"
+typeof eval;        // вертає "function"
+typeof parseInt;    // вертає "function"
+typeof shape.split; // вертає "function"
+
+ +

Для попередньо визначених об'єктів оператор typeof вертає наступні результати:

+ +
typeof Date;     // вертає "function"
+typeof Function; // вертає "function"
+typeof Math;     // вертає "object"
+typeof Option;   // вертає "function"
+typeof String;   // вертає "function"
+
+ +

void

+ +

Оператор void використовується наступним чином:

+ +
void (вираз)
+void вираз
+
+ +

Оператор void вказує, що вираз має бути обчислений без повернення значення. Вираз є виразом JavaScript, який треба обчислити. Дужки, що оточують вираз, є необов'язковими, але вживати їх є гарним стилем.

+ +

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

+ +

Наступний код створює гіпертекстове посилання, яке нічого не робить, коли користувач на нього натискає. Коли користувач натискає на посилання, void(0) обчислюється як undefined, що не має жодного ефекту у JavaScript.

+ +
<a href="javascript:void(0)">Натисніть сюди, щоб нічого не робити</a>
+
+ +

Наступний код створює гіпертекстове посилання, яке відправляє форму, коли користувач натискає на нього.

+ +
<a href="javascript:void(document.form.submit())">
+Натисніть сюди, щоб відправити</a>
+ +

Оператори відношення

+ +

Оператор відношення порівнює свої операнди та повертає значення Boolean, на підставі того, чи є порівняння істиною.

+ +

in

+ +

Оператор in повертає true, якщо вказана властивість існує на вказаному об'єкті. Синтаксис наступний:

+ +
propNameOrNumber in objectName
+
+ +

де propNameOrNumber є рядковим або числовим виразом, який відображає ім'я властивості або індекс у масиві, а objectName є ім'ям об'єкта.

+ +

Наступний приклад демонструє варіанти використання оператора in.

+ +
// Масиви
+var trees = ['секвоя', 'лавр', 'кедр', 'дуб', 'клен'];
+0 in trees;        // вертає true
+3 in trees;        // вертає true
+6 in trees;        // вертає false
+'лавр' in trees;    // вертає false (ви маєте вказати індекс,
+                   // а не значення за цим індексом)
+'length' in trees; // вертає true (length є властивістю масиву)
+
+// вбудовані об'єкти
+'PI' in Math;          // вертає true
+var myString = new String('корал');
+'length' in myString;  // вертає true
+
+// Користувацькі об'єкти
+var mycar = { make: 'Honda', model: 'Accord', year: 1998 };
+'make' in mycar;  // вертає true
+'model' in mycar; // вертає true
+
+ +

instanceof

+ +

Оператор instanceof повертає true, якщо вказаний об'єкт належить до вказаного типу. Синтаксис наступний:

+ +
objectName instanceof objectType
+
+ +

де objectName є ім'ям об'єкта, який порівнюється з objectType, а objectType є типом об'єкта, наприклад, {{jsxref("Date")}} або {{jsxref("Array")}}.

+ +

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

+ +

Наприклад, наступний код використовує instanceof для визначення того, чи theDay є об'єктом Date. Оскільки theDay є об'єктом Date, інструкції у блоці if будуть виконані.

+ +
var theDay = new Date(1995, 12, 17);
+if (theDay instanceof Date) {
+  // інструкції для виконання
+}
+
+ +

Пріоритет операторів

+ +

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

+ +

Наступна таблиця наводить пріоритети операторів, від найвищого до найнижчого.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Пріоритет операторів
Тип оператораОкремі оператори
властивість. []
виклик / створення екземпляра() new
заперечення / інкремент! ~ - + ++ -- typeof void delete
множення / ділення* / %
додавання / віднімання+ -
бітовий зсув<< >> >>>
відношення< <= > >= in instanceof
рівність== != === !==
побітове-і&
виключне-побітове-або^
побітове-або|
логічне-і&&
логічне-або||
умовний?:
присвоєння= += -= *= /= %= <<= >>= >>>= &= ^= |=
кома,
+ +

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

+ +

Вирази

+ +

Виразом є будь-яка одиниця коду, яка вирішується з певним значенням.

+ +

Кожний синтаксично коректний вираз вирішується з якимось значенням, але, концептуально, існують два типи виразів: з побічними ефектами (наприклад: ті, що присвоюють значення змінній) та такі, що обчислюються і, таким чином, вирішуються з певним значенням.

+ +

Вираз x = 7 є прикладом першого типу. Цей вираз використовує оператор = для присвоєння семи змінній x. Сам вираз обчислюється з результатом сім.

+ +

Код 3 + 4 є прикладом другого типу виразів. Цей вираз за допомогою оператора + складає три та чотири без присвоєння результату, семи, змінній.
+
+ JavaScript має наступні категорії виразів:

+ + + +

Первинні вирази

+ +

Базові ключові слова та загальні вирази у JavaScript.

+ +

this

+ +

Використовуйте ключове слово this для посилання на поточний об'єкт. Загалом, this у методі посилається на об'єкт, що його викликав. Використовуйте this або з крапкою, або з дужковою нотацією:

+ +
this['propertyName']
+this.propertyName
+
+ +

Припустимо, функція на ім'я validate перевіряє властивість об'єкта value, маючи найменше та найбільше значення:

+ +
function validate(obj, lowval, hival) {
+  if ((obj.value < lowval) || (obj.value > hival))
+    console.log('Некоректне значення!');
+}
+
+ +

Ви можете викликати validate в кожному обробнику подій елементів форми onChange, використовуючи this, щоб передати йому елемент форми, як у наступному прикладі:

+ +
<p>Введіть число між 18 та 99:</p>
+<input type="текст" name="вік" size=3 onChange="validate(this, 18, 99);">
+
+ +

Оператор групування

+ +

Оператор групування ( ) контролює пріоритет обчислення у виразах. Наприклад, ви можете змінити обчислення спочатку множення та ділення, а потім додавання та віднімання, щоб обчислити спочатку додавання.

+ +
var a = 1;
+var b = 2;
+var c = 3;
+
+// пріоритет за замовчуванням
+a + b * c     // 7
+// обчислюється наступним чином
+a + (b * c)   // 7
+
+// тепер змінюємо пріоритет
+// додавання перед множенням
+(a + b) * c   // 9
+
+// що є рівнозначним
+a * c + b * c // 9
+
+ +

Лівосторонні вирази

+ +

Значення зліва є призначенням присвоєння.

+ +

new

+ +

Ви можете скористатись оператором new, щоб створити екземпляр визначеного користувачем типу об'єкта або одного з вбудованих типів. Використовуйте new наступним чином:

+ +
var objectName = new objectType([param1, param2, ..., paramN]);
+
+ +

super

+ +

Ключове слово super використовується для виклику функцій батьківського об'єкта. Воно корисне для використання з класами, для виклику батьківського конструктора, наприклад.

+ +
super([arguments]); // викликає батьківський конструктор.
+super.functionOnParent([arguments]);
+
+ +

Оператор розпакування

+ +

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

+ +

Приклад: Сьогодні, якщо ви маєте масив та бажаєте створити новий масив, використавши існуючий масив як його частину, синтаксису масивного літералу більше недостатньо, і вам доводиться повертатись до імперативного коду, використовуючи комбінацію з push, splice, concat, і т. д. З оператором розпакування все стає набагато лаконічнішим:

+ +
var parts = ['плечі', 'коліна'];
+var lyrics = ['голова', ...parts, 'та', 'пальці'];
+ +

Схожим чином оператор розпакування працює з викликами функцій:

+ +
function f(x, y, z) { }
+var args = [0, 1, 2];
+f(...args);
+ +
{{PreviousNext("Web/JavaScript/Guide/Functions", "Web/JavaScript/Guide/Numbers_and_dates")}}
diff --git "a/files/uk/web/javascript/guide/\320\262\320\270\321\200\320\260\320\267\320\270_\321\202\320\260_\320\276\320\277\320\265\321\200\320\260\321\202\320\276\321\200\320\270/index.html" "b/files/uk/web/javascript/guide/\320\262\320\270\321\200\320\260\320\267\320\270_\321\202\320\260_\320\276\320\277\320\265\321\200\320\260\321\202\320\276\321\200\320\270/index.html" deleted file mode 100644 index fdfbc0659b..0000000000 --- "a/files/uk/web/javascript/guide/\320\262\320\270\321\200\320\260\320\267\320\270_\321\202\320\260_\320\276\320\277\320\265\321\200\320\260\321\202\320\276\321\200\320\270/index.html" +++ /dev/null @@ -1,925 +0,0 @@ ---- -title: Вирази та оператори -slug: Web/JavaScript/Guide/Вирази_та_оператори -tags: - - JavaScript - - Оператори - - Посібник - - вирази -translation_of: Web/JavaScript/Guide/Expressions_and_Operators ---- -
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Functions", "Web/JavaScript/Guide/Numbers_and_dates")}}
- -

Цей розділ описує вирази та оператори JavaScript, такі як присвоювання, порівняння, арифметичні оператори, бітові, логічні, рядкові, тернарний та інші.

- -

Повний та детальний список операторів та виразів також доступний за посиланням.

- -

Оператори

- -

JavaScript має наступні типи операторів. Ця секція описує оператори, а також містить інформацію щодо їхніх пріоритетів.

- - - -

JavaScript має як бінарні, так і унарні оператори, а також один особливий тернарний оператор - умовний оператор. Бінарному оператору потрібні два операнди - один перед оператором, інший після оператора:

- -
операнд1 оператор операнд2
-
- -

Наприклад, 3+4 чи x*y.

- -

Унарний оператор потребує лише одного операнду до чи після оператора:

- -
оператор операнд
-
- -

чи

- -
операнд оператор
-
- -

Наприклад, x++ чи ++x.

- -

Оператори присвоєння

- -

Оператор присвоєння присвоює своєму лівому операнду значення на підставі значення правого операнда. Простим оператором присвоєння є оператор дорівнює (=), який присвоює значення свого правого операнда лівому операнду. Таким чином, x = y присвоює значення змінної y змінній x.

- -

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Складені оператори присвоювання
НазваОператор скороченого записуЗначення
Присвоєнняx = yx = y
Присвоєння з додаваннямx += yx = x + y
Присвоєння з відніманнямx -= yx = x - y
Присвоєння з множеннямx *= yx = x * y
Присвоєння з діленнямx /= yx = x / y
Присвоєння остачіx %= yx = x % y
Присвоєння з піднесенням до степеня{{experimental_inline}}x **= yx = x ** y
Присвоєння з лівим зсувомx <<= yx = x << y
Присвоєння з правим зсувомx >>= yx = x >> y
Присвоєння з беззнаковим правим зсувомx >>>= yx = x >>> y
Присвоєння з побітовим Іx &= yx = x & y
Присвоєння з виключним побітовим АБОx ^= yx = x ^ y
Присвоєння з побітовим АБОx |= yx = x | y
- -

Деструктуризація

- -

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

- -
var foo = ['один', 'два', 'три'];
-
-// без деструктуризації
-var one   = foo[0];
-var two   = foo[1];
-var three = foo[2];
-
-// із деструктуризацією
-var [one, two, three] = foo;
-
- -

Оператори порівняння

- -

Оператор порівняння порівнює свої операнди та повертає логічне значення, базуючись на істинності порівняння. Операнди можуть бути числовими, рядковими, логічними значеннями або об'єктами. Рядки порівнюються згідно стандартного лексикографічного порядку, з використанням значень Unicode. У більшості випадків, якщо два операнди не належать до одного типу, JavaScript намагається привести їх до належного для порівняння типу. Зазвичай це призводить до числового порівняння операндів. Єдиними винятками у конвертації типів під час порівняння є оператори === та !==, які виконують перевірку на строгу рівність та строгу нерівність. Ці оператори не намагаються перед перевіркою на рівність привести операнди до спільного типу. Наступна таблиця наводить оператори порівняння у контексті цього фрагменту коду:

- -
var var1 = 3;
-var var2 = 4;
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Оператори порівняння
ОператорОписПриклади, які повертають true
Рівність (==)Повертає true, якщо оператори рівні.3 == var1 -

"3" == var1

- 3 == '3'
Нерівність (!=)Повертає true, якщо оператори нерівні.var1 != 4
- var2 != "3"
Строга рівність (===)Повертає true якщо оператори рівні та належать до одного типу. Дивіться також {{jsxref("Object.is")}} та однаковість у JS.3 === var1
Строга нерівність (!==)Повертає true, якщо оператори належать до одного типу, але нерівні, або належать до різних типів.var1 !== "3"
- 3 !== '3'
Більше ніж (>)Повертає true, якщо лівий операнд більший за правий.var2 > var1
- "12" > 2
Більше чи дорівнює (>=)Повертає true, якщо значення лівого операнда більше або дорівнює значенню правого операнда.var2 >= var1
- var1 >= 3
Менше ніж (<)Повертає true, якщо лівий операнд менший за правий.var1 < var2
- "2" < 12
Менше чи дорівнює (<=)Повертає true, якщо значення лівого операнда менше або дорівнює значенню правого операнда.var1 <= var2
- var2 <= 5
- -
-

Заувага: (=>) не оператор, а позначення для стрілкових функцій.

-
- -

Арифметичні оператори

- -

Арифметичний оператор приймає числові значення (літерали чи змінні) в якості операндів та повертає єдине числове значення. Стандартними арифметичними операторами є додавання (+), віднімання (-), множення (*) та ділення (/). Ці оператори працюють так само, як і в більшості інших мов програмування при використанні з числами з рухомою комою (зокрема, зауважте, що ділення на нуль повертає {{jsxref("Infinity")}}). Наприклад:

- -
1 / 2; // 0.5
-1 / 2 == 1.0 / 2.0; // це дорівнює true
-
- -

На додачу до стандартних арифметичних операцій (+, -, * /), JavaScript надає арифметичні операції, перечислені у наведеній нижче таблиці:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Арифметичні оператори
ОператорОписПриклад
Остача (%)Бінарний оператор. Повертає цілочисельну остачу від ділення двох операндів.12 % 5 повертає 2.
Інкремент (++)Унарний оператор. Додає до операнда одиницю. Якщо використовується як префіксний оператор (++x), повертає значення операнда після додавання одиниці; якщо використовується як постфіксний оператор (x++), повертає значення операнда перед додаванням одиниці.Якщо x дорівнює 3, тоді ++x присвоює x значення 4 та повертає 4, в той час, як x++ повертає 3 і лише тоді присвоює x значення 4.
Декремент (--)Унарний оператор. Віднімає одиницю від свого операнда. Повернене значення аналогічне поверненому значенню оператора інкременту.Якщо x дорівнює 3, тоді --x присвоює x значення 2 та повертає 2, в той час, як x-- повертає 3 і тільки тоді присвоює x значення 2.
Унарний мінус (-)Унарний оператор. Повертає операнд з протилежним знаком.Якщо x дорівнює 3, то -x повертає -3.
Унарний плюс (+)Унарний оператор. Намагається перетворити операнд на число, якщо він не є числом.+"3" повертає 3.
- +true повертає 1.
Піднесення до степеня (**) {{experimental_inline}}Підносить основу степеня до показника степеня, тобто, основапоказник2 ** 3 повертає 8.
- 10 ** -1 повертає 0.1.
- -

Бітові оператори

- -

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

- -

Наступна таблиця наводить перелік бітових операторів JavaScript.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Бітові оператори
ОператорЗастосуванняОпис
Побітове І (AND)a & bПовертає одиницю на кожній позиції, де відповідні біти обох операндів дорівнюють одиницям.
Побітове АБО (OR)a | bПовертає нуль на кожній позиції, де відповідні біти обох операндів дорівнюють нулям.
Виключне побітове АБО (XOR)a ^ bПовертає нуль на кожній позиції, де відповідні біти однакові.
- [Повертає один на кожній позиції, де відповідні біти мають різні значення.]
Побітове НЕ (NOT)~ aВиконує інверсію бітів операнду.
Лівий зсувa << bЗсуває a у двійковому представленні на b бітів ліворуч, заповнюючи позиції справа нулями.
Правий зсув з розширенням знакуa >> bЗсуває a у двійковому представленні на b бітів праворуч, відкидаючи зсунуті біти.
Правий зсув із заповненням нулямиa >>> bЗсуває a у двійковому представленні на b бітів праворуч, відкидаючи зсунуті біти та заповнюючи позиції зліва нулями.
- -

Побітові логічні оператори

- -

Концептуально побітові логічні оператори працюють наступним чином:

- - - -

Наприклад, бінарним представленням числа дев'ять є 1001, а бінарним представленням п'ятнадцяти є 1111. Отже, коли бітові оператори застосовуються до цих величин, результати будуть наступні:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Приклади бітових операторів
ВиразРезультатДвійковий опис
15 & 991111 & 1001 = 1001
15 | 9151111 | 1001 = 1111
15 ^ 961111 ^ 1001 = 0110
~15-16~00000000...00001111 = 11111111...11110000
~9-10~00000000...00001001 = 11111111...11110110
- -

Зауважте, що усі 32 біти інвертуються побітовим оператором НЕ, і що значення, в яких найстарший (перший зліва) біт дорівнює 1, відображають від'ємні числа (формат доповняльного коду).

- -

Оператори бітового зсуву

- -

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

- -

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

- -

Оператори зсуву наведені у наступній таблиці.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Оператори бітового зсуву
ОператорОписПриклад
Лівий зсув
- (<<)
Цей оператор виконує зсув першого операнду на вказану кількість бітів ліворуч. Надлишкові біти, зсунуті ліворуч, відкидаються. Біти, додані справа, заповнюються нулями.9<<2 вертає 36, тому що число 1001, зсунуте на 2 біти ліворуч, стає 100100, тобто, 36.
Правий зсув з розширенням знаку (>>) -

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

-
9>>2 вертає 2, тому що число 1001, зсунуте на 2 біти праворуч, стає 10, тобто 2. Аналогічно, -9>>2 вертає -3,  тому що знак зберігається.
Правий зсув із заповненням нулями(>>>) -

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

-
19>>>2 вертає 4, тому що число 10011, зсунуте на 2 бітів праворуч, стає 100, тобто 4. Для невід'ємних чисел, правий зсув із заповненням нулями та правий зсув з розширенням знаку дають однаковий результат.
- -

Логічні оператори

- -

Логічні оператори застосовуються до булевих (логічних) значень; в цьому випадку вони повертають значення типу Boolean. Однак, оператори && та || насправді повертають значення одного з заданих операндів, тому, якщо ці оператори використовуються зі значеннями не булевого типу, вони повернуть значення не булевого типу. Логічні оператори описані у наведеній нижче таблиці.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Логічні оператори
ОператорЗастосуванняОпис
Логічне І (&&)expr1 && expr2Вертає вираз expr1, якщо він може бути перетворений на false; інакше, повертає expr2. Таким чином, при використанні з булевими значеннями && вертає true, якщо обидва операнди дорівнюють true; інакше, вертає false.
Логічне АБО (||)expr1 || expr2Вертає вираз expr1, якщо він може бути перетворений на true; інакше, вертає expr2. Таким чином, при використанні з булевими значеннями || вертає true, якщо будь-який з операндів дорівнює true; якщо обидва дорівнюють false, вертає false.
Логічне НЕ (!)!exprВертає false, якщо його єдиний операнд може бути перетворений на true; інакше, вертає true.
- -

Прикладами виразів, які можуть бути перетворені на false, є ті, які повертають null, 0, NaN, порожній рядок ("") або undefined.

- -

Наступний код демонструє приклади оператора && (логічне І).

- -
var a1 =  true && true;     // t && t вертає true
-var a2 =  true && false;    // t && f вертає false
-var a3 = false && true;     // f && t вертає false
-var a4 = false && (3 == 4); // f && f вертає false
-var a5 = 'Кіт' && 'Пес';    // t && t вертає Пес
-var a6 = false && 'Кіт';    // f && t вертає false
-var a7 = 'Кіт' && false;    // t && f вертає false
-
- -

Наступний код демонструє приклади оператора || (логічне АБО).

- -
var o1 =  true || true;     // t || t вертає true
-var o2 = false || true;     // f || t вертає true
-var o3 =  true || false;    // t || f вертає true
-var o4 = false || (3 == 4); // f || f вертає false
-var o5 = 'Кіт' || 'Пес';    // t || t вертає Кіт
-var o6 = false || 'Кіт';    // f || t вертає Кіт
-var o7 = 'Кіт' || false;    // t || f вертає Кіт
-
- -

Наступний код демонструє приклади оператора ! (логічне НЕ).

- -
var n1 = !true;  // !t вертає false
-var n2 = !false; // !f вертає true
-var n3 = !'Кіт'; // !t вертає false
-
- -

Коротке замикання обчислення

- -

Оскільки логічні вирази обчислюються зліва направо, вони перевіряються на можливе "коротке замикання" обчислення за наступними правилами:

- - - -

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

- -

Рядкові оператори

- -

На додачу до операторів порівняння, які можуть застосовуватись до рядкових значень, оператор конкатенації (+) об'єднує значення двох рядків, повертаючи інший рядок, який є об'єднанням рядків двох операндів.

- -

Наприклад,

- -
console.log('мій ' + 'рядок'); // консоль виводить рядок "мій рядок".
- -

Скорочений оператор присвоєння += також може застосовуватись для конкатенації рядків.

- -

Наприклад,

- -
var mystring = 'алфа';
-mystring += 'віт'; // повертає "алфавіт" та присвоює це значення mystring.
- -

Умовний (тернарний) оператор

- -

Умовний оператор - єдиний оператор у JavaScript, який приймає три операнди. У оператора може бути одне чи два значення, в залежності від умови. Використовує наступний синтакс:

- -
умова ? значення1 : значення2
-
- -

Якщо умова дорівнює true, оператор повертає значення1.  В іншому випадку - значення2. Умовний оператор можна використовувати будь-де, де використовується звичайний оператор. Наприклад:

- -
var status = (age >= 18) ? 'дорослий' : 'неповнолітній';
-
- -

Ця інструкція присвоює значення "дорослий" змінній status, якщо значення age (вік) більше чи дорівнює 18. Інакше, вона присвоює змінній status значення "неповнолітній".

- -

Оператор кома

- -

Оператор кома (,) просто обчислює обидва свої операнди та повертає значення останнього операнда. Цей оператор найчастіше використовується всередині циклу for, що дозволяє оновлювати більше однієї змінної на кожному проході циклу.

- -

Наприклад, якщо a є двовимірним масивом з 10 елементами по кожній стороні, наступний код використовує оператор кома, щоб оновити дві змінні одночасно. Код виводить значення діагональних елементів масиву:

- -
for (var i = 0, j = 9; i <= j; i++, j--)
-  console.log('a[' + i + '][' + j + ']= ' + a[i][j]);
-
- -

Унарні оператори

- -

Унарна операція - це операція лише з одним операндом.

- -

delete

- -

Оператор delete видаляє об'єкт, властивість об'єкта або елемент за вказаним індексом у масиві. Синтаксис наступний:

- -
delete objectName;
-delete objectName.property;
-delete objectName[index];
-delete property; // працює лише всередині конструкції with
-
- -

де objectName є іменем об'єкта, property - існуюча властивість, а index - ціле число, що вказує розташування елемента у масиві.

- -

Четверта форма працює лише всередині блоку with для видалення властивості об'єкта.

- -

Ви можете використовувати оператор delete для видалення змінних, оголошених неявно, але не тих, що були оголошені оператором var.

- -

Якщо оператор delete відпрацьовує успішно, значенням властивості чи елемента стає undefined. Оператор delete повертає true, якщо операція можлива; він повертає false, якщо операція неможлива.

- -
x = 42;
-var y = 43;
-myobj = new Number();
-myobj.h = 4;    // створює властивість h
-delete x;       // вертає true (можна видалити властивість, оголошену неявно)
-delete y;       // вертає false (не можна видалити властивість, оголошену через var)
-delete Math.PI; // вертає false (не можна видаляти попередньо визначені властивості)
-delete myobj.h; // вертає true (можна видалити властивість, визначену користувачем)
-delete myobj;   // вертає true (можна видалити, якщо властивість оголошена неявно)
-
- -
Видалення елементів масиву
- -

Коли ви видаляєте елемент масиву, це не впливає на довжину масиву. Для прикладу, якщо ви видалите a[3], a[4] досі є a[4], а a[3] дорівнює undefined.

- -

Коли оператор delete видаляє елемент масиву, цей елемент більше не існує у масиві. У наступному прикладі trees[3] видаляється оператором delete. Однак, адреса trees[3] досі доступна та повертає undefined.

- -
var trees = ['секвоя', 'лавр', 'кедр', 'дуб', 'клен'];
-delete trees[3];
-if (3 in trees) {
-  // це не виконається
-}
-
- -

Якщо вам потрібно, щоб елемент існував, але мав значення undefined, скористайтесь ключовим словом undefined замість оператора delete. У наступному прикладі trees[3] присвоюється значення undefined, але елемент масиву досі існує:

- -
var trees = ['секвоя', 'лавр', 'кедр', 'дуб', 'клен'];
-trees[3] = undefined;
-if (3 in trees) {
-  // це виконається
-}
-
- -

typeof

- -

Оператор typeof використовується наступним чином:

- -
typeof операнд
-typeof (операнд)
-
- -

Оператор typeof повертає рядок, що вказує тип необчисленого операнда. Операнд є рядком, змінною, ключовим словом чи об'єктом, для якого треба повернути тип. Круглі дужки є необов'язковими.

- -

Припустимо, ви визначили наступні змінні:

- -
var myFun = new Function('5 + 2');
-var shape = 'коло';
-var size = 1;
-var foo = ['Яблуко', 'Манго', 'Апельсин'];
-var today = new Date();
-
- -

Оператор typeof вертає наступні результати для цих змінних:

- -
typeof myFun;       // вертає "function"
-typeof shape;       // вертає "string"
-typeof size;        // вертає "number"
-typeof foo;         // вертає "object"
-typeof today;       // вертає "object"
-typeof doesntExist; // вертає "undefined"
-
- -

Для ключових слів true та null оператор typeof вертає наступні результати:

- -
typeof true; // вертає "boolean"
-typeof null; // вертає "object"
-
- -

Для числа та рядка оператор typeof вертає наступні результати:

- -
typeof 62;            // вертає "number"
-typeof 'Hello world'; // вертає "string"
-
- -

Для значень властивостей оператор typeof вертає тип значення, яке містить ця властивість:

- -
typeof document.lastModified; // вертає "string"
-typeof window.length;         // вертає "number"
-typeof Math.LN2;              // вертає "number"
-
- -

Для методів та функцій оператор typeof вертає наступні результати:

- -
typeof blur;        // вертає "function"
-typeof eval;        // вертає "function"
-typeof parseInt;    // вертає "function"
-typeof shape.split; // вертає "function"
-
- -

Для попередньо визначених об'єктів оператор typeof вертає наступні результати:

- -
typeof Date;     // вертає "function"
-typeof Function; // вертає "function"
-typeof Math;     // вертає "object"
-typeof Option;   // вертає "function"
-typeof String;   // вертає "function"
-
- -

void

- -

Оператор void використовується наступним чином:

- -
void (вираз)
-void вираз
-
- -

Оператор void вказує, що вираз має бути обчислений без повернення значення. Вираз є виразом JavaScript, який треба обчислити. Дужки, що оточують вираз, є необов'язковими, але вживати їх є гарним стилем.

- -

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

- -

Наступний код створює гіпертекстове посилання, яке нічого не робить, коли користувач на нього натискає. Коли користувач натискає на посилання, void(0) обчислюється як undefined, що не має жодного ефекту у JavaScript.

- -
<a href="javascript:void(0)">Натисніть сюди, щоб нічого не робити</a>
-
- -

Наступний код створює гіпертекстове посилання, яке відправляє форму, коли користувач натискає на нього.

- -
<a href="javascript:void(document.form.submit())">
-Натисніть сюди, щоб відправити</a>
- -

Оператори відношення

- -

Оператор відношення порівнює свої операнди та повертає значення Boolean, на підставі того, чи є порівняння істиною.

- -

in

- -

Оператор in повертає true, якщо вказана властивість існує на вказаному об'єкті. Синтаксис наступний:

- -
propNameOrNumber in objectName
-
- -

де propNameOrNumber є рядковим або числовим виразом, який відображає ім'я властивості або індекс у масиві, а objectName є ім'ям об'єкта.

- -

Наступний приклад демонструє варіанти використання оператора in.

- -
// Масиви
-var trees = ['секвоя', 'лавр', 'кедр', 'дуб', 'клен'];
-0 in trees;        // вертає true
-3 in trees;        // вертає true
-6 in trees;        // вертає false
-'лавр' in trees;    // вертає false (ви маєте вказати індекс,
-                   // а не значення за цим індексом)
-'length' in trees; // вертає true (length є властивістю масиву)
-
-// вбудовані об'єкти
-'PI' in Math;          // вертає true
-var myString = new String('корал');
-'length' in myString;  // вертає true
-
-// Користувацькі об'єкти
-var mycar = { make: 'Honda', model: 'Accord', year: 1998 };
-'make' in mycar;  // вертає true
-'model' in mycar; // вертає true
-
- -

instanceof

- -

Оператор instanceof повертає true, якщо вказаний об'єкт належить до вказаного типу. Синтаксис наступний:

- -
objectName instanceof objectType
-
- -

де objectName є ім'ям об'єкта, який порівнюється з objectType, а objectType є типом об'єкта, наприклад, {{jsxref("Date")}} або {{jsxref("Array")}}.

- -

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

- -

Наприклад, наступний код використовує instanceof для визначення того, чи theDay є об'єктом Date. Оскільки theDay є об'єктом Date, інструкції у блоці if будуть виконані.

- -
var theDay = new Date(1995, 12, 17);
-if (theDay instanceof Date) {
-  // інструкції для виконання
-}
-
- -

Пріоритет операторів

- -

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

- -

Наступна таблиця наводить пріоритети операторів, від найвищого до найнижчого.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Пріоритет операторів
Тип оператораОкремі оператори
властивість. []
виклик / створення екземпляра() new
заперечення / інкремент! ~ - + ++ -- typeof void delete
множення / ділення* / %
додавання / віднімання+ -
бітовий зсув<< >> >>>
відношення< <= > >= in instanceof
рівність== != === !==
побітове-і&
виключне-побітове-або^
побітове-або|
логічне-і&&
логічне-або||
умовний?:
присвоєння= += -= *= /= %= <<= >>= >>>= &= ^= |=
кома,
- -

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

- -

Вирази

- -

Виразом є будь-яка одиниця коду, яка вирішується з певним значенням.

- -

Кожний синтаксично коректний вираз вирішується з якимось значенням, але, концептуально, існують два типи виразів: з побічними ефектами (наприклад: ті, що присвоюють значення змінній) та такі, що обчислюються і, таким чином, вирішуються з певним значенням.

- -

Вираз x = 7 є прикладом першого типу. Цей вираз використовує оператор = для присвоєння семи змінній x. Сам вираз обчислюється з результатом сім.

- -

Код 3 + 4 є прикладом другого типу виразів. Цей вираз за допомогою оператора + складає три та чотири без присвоєння результату, семи, змінній.
-
- JavaScript має наступні категорії виразів:

- - - -

Первинні вирази

- -

Базові ключові слова та загальні вирази у JavaScript.

- -

this

- -

Використовуйте ключове слово this для посилання на поточний об'єкт. Загалом, this у методі посилається на об'єкт, що його викликав. Використовуйте this або з крапкою, або з дужковою нотацією:

- -
this['propertyName']
-this.propertyName
-
- -

Припустимо, функція на ім'я validate перевіряє властивість об'єкта value, маючи найменше та найбільше значення:

- -
function validate(obj, lowval, hival) {
-  if ((obj.value < lowval) || (obj.value > hival))
-    console.log('Некоректне значення!');
-}
-
- -

Ви можете викликати validate в кожному обробнику подій елементів форми onChange, використовуючи this, щоб передати йому елемент форми, як у наступному прикладі:

- -
<p>Введіть число між 18 та 99:</p>
-<input type="текст" name="вік" size=3 onChange="validate(this, 18, 99);">
-
- -

Оператор групування

- -

Оператор групування ( ) контролює пріоритет обчислення у виразах. Наприклад, ви можете змінити обчислення спочатку множення та ділення, а потім додавання та віднімання, щоб обчислити спочатку додавання.

- -
var a = 1;
-var b = 2;
-var c = 3;
-
-// пріоритет за замовчуванням
-a + b * c     // 7
-// обчислюється наступним чином
-a + (b * c)   // 7
-
-// тепер змінюємо пріоритет
-// додавання перед множенням
-(a + b) * c   // 9
-
-// що є рівнозначним
-a * c + b * c // 9
-
- -

Лівосторонні вирази

- -

Значення зліва є призначенням присвоєння.

- -

new

- -

Ви можете скористатись оператором new, щоб створити екземпляр визначеного користувачем типу об'єкта або одного з вбудованих типів. Використовуйте new наступним чином:

- -
var objectName = new objectType([param1, param2, ..., paramN]);
-
- -

super

- -

Ключове слово super використовується для виклику функцій батьківського об'єкта. Воно корисне для використання з класами, для виклику батьківського конструктора, наприклад.

- -
super([arguments]); // викликає батьківський конструктор.
-super.functionOnParent([arguments]);
-
- -

Оператор розпакування

- -

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

- -

Приклад: Сьогодні, якщо ви маєте масив та бажаєте створити новий масив, використавши існуючий масив як його частину, синтаксису масивного літералу більше недостатньо, і вам доводиться повертатись до імперативного коду, використовуючи комбінацію з push, splice, concat, і т. д. З оператором розпакування все стає набагато лаконічнішим:

- -
var parts = ['плечі', 'коліна'];
-var lyrics = ['голова', ...parts, 'та', 'пальці'];
- -

Схожим чином оператор розпакування працює з викликами функцій:

- -
function f(x, y, z) { }
-var args = [0, 1, 2];
-f(...args);
- -
{{PreviousNext("Web/JavaScript/Guide/Functions", "Web/JavaScript/Guide/Numbers_and_dates")}}
-- cgit v1.2.3-54-g00ecf From 426f4cc81396745a22d263792cfc3974245dd9e8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:47 +0100 Subject: unslug uk: modify --- files/uk/_redirects.txt | 197 +- files/uk/_wikihistory.json | 2388 ++++++++++---------- files/uk/conflicting/glossary/doctype/index.html | 3 +- .../conflicting/learn/css/first_steps/index.html | 3 +- .../web/api/windoworworkerglobalscope/index.html | 3 +- .../reference/global_objects/boolean/index.html | 3 +- .../reference/global_objects/error/index.html | 3 +- .../reference/global_objects/evalerror/index.html | 3 +- .../reference/global_objects/function/index.html | 3 +- .../global_objects/generatorfunction/index.html | 3 +- .../global_objects/internalerror/index.html | 3 +- .../reference/global_objects/number/index.html | 3 +- .../reference/global_objects/promise/index.html | 3 +- .../reference/global_objects/rangeerror/index.html | 3 +- .../global_objects/referenceerror/index.html | 3 +- .../global_objects/syntaxerror/index.html | 3 +- .../reference/global_objects/typeerror/index.html | 3 +- .../reference/global_objects/urierror/index.html | 3 +- .../web/javascript/reference/operators/index.html | 3 +- .../reference/operators/spread_syntax/index.html | 3 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../reference/statements/switch/index.html | 3 +- files/uk/glossary/abstraction/index.html | 3 +- files/uk/glossary/accessibility/index.html | 3 +- files/uk/glossary/algorithm/index.html | 3 +- files/uk/glossary/argument/index.html | 3 +- files/uk/glossary/block/scripting/index.html | 3 +- files/uk/glossary/buffer/index.html | 3 +- files/uk/glossary/cipher/index.html | 3 +- files/uk/glossary/ciphertext/index.html | 3 +- files/uk/glossary/closure/index.html | 3 +- files/uk/glossary/compile/index.html | 3 +- files/uk/glossary/cryptanalysis/index.html | 3 +- .../cryptographic_hash_function/index.html | 3 +- files/uk/glossary/cryptography/index.html | 3 +- files/uk/glossary/decryption/index.html | 3 +- .../dynamic_programming_language/index.html | 3 +- files/uk/glossary/function/index.html | 3 +- files/uk/glossary/hyperlink/index.html | 3 +- files/uk/glossary/identifier/index.html | 3 +- files/uk/glossary/internet/index.html | 3 +- files/uk/glossary/method/index.html | 3 +- files/uk/glossary/oop/index.html | 3 +- files/uk/glossary/operator/index.html | 3 +- files/uk/glossary/recursion/index.html | 3 +- files/uk/glossary/statement/index.html | 3 +- files/uk/glossary/symbol/index.html | 3 +- files/uk/glossary/type/index.html | 3 +- files/uk/glossary/ux/index.html | 3 +- files/uk/glossary/value/index.html | 3 +- files/uk/glossary/variable/index.html | 3 +- files/uk/glossary/viewport/index.html | 3 +- files/uk/glossary/world_wide_web/index.html | 3 +- files/uk/glossary/wrapper/index.html | 3 +- files/uk/learn/accessibility/index.html | 3 +- files/uk/learn/css/css_layout/index.html | 3 +- .../learn/css/first_steps/how_css_works/index.html | 3 +- .../learn/css/first_steps/what_is_css/index.html | 3 +- .../css/styling_text/styling_lists/index.html | 3 +- files/uk/learn/forms/index.html | 3 +- files/uk/learn/forms/your_first_form/index.html | 3 +- files/uk/learn/front-end_web_developer/index.html | 3 +- .../the_web_and_web_standards/index.html | 3 +- .../the_head_metadata_in_html/index.html | 3 +- files/uk/learn/javascript/asynchronous/index.html | 3 +- .../uk/learn/javascript/building_blocks/index.html | 3 +- .../uk/learn/learning_and_getting_help/index.html | 3 +- .../client-side_javascript_frameworks/index.html | 3 +- .../svelte_getting_started/index.html | 4 +- .../cross_browser_testing/index.html | 3 +- files/uk/learn/tools_and_testing/github/index.html | 3 +- .../understanding_client-side_tools/index.html | 3 +- files/uk/mdn/about/index.html | 3 +- .../howto/create_and_edit_pages/index.html | 3 +- .../mdn/guidelines/writing_style_guide/index.html | 3 +- .../macros/commonly-used_macros/index.html | 3 +- files/uk/mdn/structures/macros/index.html | 3 +- .../tools/kumascript/troubleshooting/index.html | 3 +- files/uk/mdn/yari/index.html | 3 +- .../what_are_webextensions/index.html | 3 +- .../uk/orphaned/learn/how_to_contribute/index.html | 3 +- files/uk/orphaned/mdn/community/index.html | 3 +- .../contribute/howto/be_a_beta_tester/index.html | 3 +- .../howto/create_an_mdn_account/index.html | 3 +- .../howto/do_an_editorial_review/index.html | 3 +- .../howto/set_the_summary_for_a_page/index.html | 3 +- .../global_objects/array/prototype/index.html | 3 +- .../asyncfunction/prototype/index.html | 3 +- files/uk/tools/index.html | 3 +- files/uk/tools/network_monitor/index.html | 3 +- .../performance_analysis/index.html | 3 +- .../uk/tools/network_monitor/recording/index.html | 3 +- .../network_monitor/request_details/index.html | 3 +- .../tools/network_monitor/request_list/index.html | 3 +- .../uk/tools/network_monitor/throttling/index.html | 3 +- files/uk/tools/network_monitor/toolbar/index.html | 3 +- .../tools/web_console/console_messages/index.html | 3 +- files/uk/tools/web_console/index.html | 3 +- .../uk/tools/web_console/split_console/index.html | 3 +- files/uk/tools/web_console/ui_tour/index.html | 3 +- .../hit_regions_and_accessibility/index.html | 3 +- files/uk/web/api/event/index.html | 3 +- files/uk/web/api/event/target/index.html | 3 +- .../api/htmlmediaelement/abort_event/index.html | 3 +- files/uk/web/api/page_visibility_api/index.html | 3 +- .../api/window/domcontentloaded_event/index.html | 3 +- .../settimeout/index.html | 3 +- .../uk/web/css/alternative_style_sheets/index.html | 3 +- .../css_animations/using_css_animations/index.html | 3 +- files/uk/web/css/css_box_model/index.html | 3 +- .../mastering_margin_collapsing/index.html | 3 +- .../basic_concepts_of_flexbox/index.html | 3 +- files/uk/web/css/layout_cookbook/index.html | 3 +- files/uk/web/css/layout_mode/index.html | 3 +- files/uk/web/css/reference/index.html | 3 +- .../uk/web/css/visual_formatting_model/index.html | 3 +- files/uk/web/guide/graphics/index.html | 3 +- .../using_html_sections_and_outlines/index.html | 3 +- files/uk/web/houdini/index.html | 3 +- files/uk/web/html/element/header/index.html | 3 +- files/uk/web/html/element/html/index.html | 3 +- files/uk/web/html/element/iframe/index.html | 3 +- files/uk/web/html/element/index.html | 3 +- files/uk/web/html/element/link/index.html | 3 +- files/uk/web/html/element/nav/index.html | 3 +- files/uk/web/html/element/script/index.html | 3 +- files/uk/web/html/element/section/index.html | 3 +- files/uk/web/html/element/style/index.html | 3 +- files/uk/web/html/element/table/index.html | 3 +- files/uk/web/html/element/video/index.html | 3 +- .../web/html/global_attributes/hidden/index.html | 3 +- files/uk/web/html/global_attributes/index.html | 3 +- .../html/global_attributes/itemscope/index.html | 3 +- .../uk/web/html/global_attributes/lang/index.html | 3 +- .../web/html/global_attributes/tabindex/index.html | 3 +- .../html/quirks_mode_and_standards_mode/index.html | 3 +- files/uk/web/html/reference/index.html | 3 +- .../uk/web/http/headers/accept-encoding/index.html | 3 +- .../uk/web/http/headers/accept-language/index.html | 3 +- files/uk/web/http/headers/connection/index.html | 3 +- .../uk/web/http/headers/content-length/index.html | 3 +- files/uk/web/http/headers/content-type/index.html | 3 +- files/uk/web/http/headers/etag/index.html | 3 +- files/uk/web/http/headers/if-match/index.html | 3 +- files/uk/web/http/headers/index.html | 3 +- files/uk/web/http/headers/location/index.html | 3 +- files/uk/web/http/headers/referer/index.html | 3 +- files/uk/web/http/headers/user-agent/index.html | 3 +- .../web/http/headers/x-forwarded-proto/index.html | 3 +- .../equality_comparisons_and_sameness/index.html | 3 +- .../guide/details_of_the_object_model/index.html | 3 +- .../guide/expressions_and_operators/index.html | 3 +- .../javascript_technologies_overview/index.html | 3 +- .../reference/functions/arrow_functions/index.html | 3 +- .../reference/functions/rest_parameters/index.html | 3 +- .../reference/global_objects/math/round/index.html | 3 +- .../global_objects/number/epsilon/index.html | 3 +- .../reference/global_objects/number/index.html | 3 +- .../global_objects/number/isfinite/index.html | 3 +- .../global_objects/number/isinteger/index.html | 3 +- .../global_objects/number/isnan/index.html | 3 +- .../global_objects/number/issafeinteger/index.html | 3 +- .../number/max_safe_integer/index.html | 3 +- .../global_objects/number/max_value/index.html | 3 +- .../number/min_safe_integer/index.html | 3 +- .../global_objects/number/min_value/index.html | 3 +- .../reference/global_objects/number/nan/index.html | 3 +- .../number/negative_infinity/index.html | 3 +- .../global_objects/number/number/index.html | 3 +- .../global_objects/number/parsefloat/index.html | 3 +- .../global_objects/number/parseint/index.html | 3 +- .../number/positive_infinity/index.html | 3 +- .../global_objects/number/toexponential/index.html | 3 +- .../global_objects/number/tofixed/index.html | 3 +- .../number/tolocalestring/index.html | 3 +- .../global_objects/number/toprecision/index.html | 3 +- .../global_objects/number/tosource/index.html | 3 +- .../global_objects/number/tostring/index.html | 3 +- .../global_objects/number/valueof/index.html | 3 +- .../global_objects/promise/reject/index.html | 3 +- .../reference/iteration_protocols/index.html | 3 +- .../operators/destructuring_assignment/index.html | 3 +- .../operators/object_initializer/index.html | 3 +- files/uk/web/tutorials/index.html | 3 +- 187 files changed, 1760 insertions(+), 1385 deletions(-) (limited to 'files/uk/web/javascript/guide') diff --git a/files/uk/_redirects.txt b/files/uk/_redirects.txt index 0cfdf93ea7..5c4a912d26 100644 --- a/files/uk/_redirects.txt +++ b/files/uk/_redirects.txt @@ -1,22 +1,207 @@ # FROM-URL TO-URL +/uk/docs/Glossary/Block/Скриптинг /uk/docs/Glossary/Block/Scripting +/uk/docs/Glossary/DTD /uk/docs/conflicting/Glossary/Doctype +/uk/docs/Glossary/Інструкція /uk/docs/Glossary/Statement +/uk/docs/Glossary/Інтернет /uk/docs/Glossary/Internet +/uk/docs/Glossary/Абстракція /uk/docs/Glossary/Abstraction +/uk/docs/Glossary/Алгоритм /uk/docs/Glossary/Algorithm +/uk/docs/Glossary/Арґумент /uk/docs/Glossary/Argument +/uk/docs/Glossary/Буфер /uk/docs/Glossary/buffer +/uk/docs/Glossary/Веб_Доступність /uk/docs/Glossary/Accessibility +/uk/docs/Glossary/Вікно_перегляду /uk/docs/Glossary/Viewport +/uk/docs/Glossary/ДК /uk/docs/Glossary/UX +/uk/docs/Glossary/Дешифрування /uk/docs/Glossary/Decryption +/uk/docs/Glossary/Динамічна_мова_програмування /uk/docs/Glossary/Dynamic_programming_language +/uk/docs/Glossary/Замикання /uk/docs/Glossary/Closure +/uk/docs/Glossary/Змінна /uk/docs/Glossary/Variable +/uk/docs/Glossary/Значення /uk/docs/Glossary/Value +/uk/docs/Glossary/Компіляція /uk/docs/Glossary/Compile +/uk/docs/Glossary/Криптоаналіз /uk/docs/Glossary/Cryptanalysis +/uk/docs/Glossary/Криптографічна_геш-функція /uk/docs/Glossary/Cryptographic_hash_function +/uk/docs/Glossary/Криптографія /uk/docs/Glossary/Cryptography +/uk/docs/Glossary/Метод /uk/docs/Glossary/Method +/uk/docs/Glossary/ООП /uk/docs/Glossary/OOP +/uk/docs/Glossary/Обгортка /uk/docs/Glossary/Wrapper +/uk/docs/Glossary/Оператор /uk/docs/Glossary/Operator +/uk/docs/Glossary/Посилання /uk/docs/Glossary/Hyperlink +/uk/docs/Glossary/Рекурсія /uk/docs/Glossary/Recursion +/uk/docs/Glossary/Символ /uk/docs/Glossary/Symbol +/uk/docs/Glossary/Тенета /uk/docs/Glossary/World_Wide_Web +/uk/docs/Glossary/Тип /uk/docs/Glossary/Type +/uk/docs/Glossary/Функція /uk/docs/Glossary/Function +/uk/docs/Glossary/Шифр /uk/docs/Glossary/Cipher +/uk/docs/Glossary/Шифротекст /uk/docs/Glossary/Ciphertext +/uk/docs/Glossary/ідентифікатор /uk/docs/Glossary/Identifier +/uk/docs/Learn/CSS/CSS_розмітка /uk/docs/Learn/CSS/CSS_layout +/uk/docs/Learn/CSS/First_steps/Що_таке_CSS /uk/docs/Learn/CSS/First_steps/What_is_CSS /uk/docs/Learn/CSS/Introduction_to_CSS /en-US/docs/Learn/CSS/First_steps +/uk/docs/Learn/CSS/Styling_text/Стилі_списків /uk/docs/Learn/CSS/Styling_text/Styling_lists +/uk/docs/Learn/Getting_started_with_the_web/Інтернет_та_веб-стандарти /uk/docs/Learn/Getting_started_with_the_web/The_web_and_web_standards +/uk/docs/Learn/HTML/Forms /uk/docs/Learn/Forms +/uk/docs/Learn/HTML/Forms/Your_first_form /uk/docs/Learn/Forms/Your_first_form +/uk/docs/Learn/HTML/Introduction_to_HTML/scho_v_head_metadani_v_HTML /uk/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML +/uk/docs/Learn/How_to_contribute /uk/docs/orphaned/Learn/How_to_contribute +/uk/docs/Learn/JavaScript/Асинхронний /uk/docs/Learn/JavaScript/Asynchronous +/uk/docs/Learn/JavaScript/Будівельні_блоки /uk/docs/Learn/JavaScript/Building_blocks +/uk/docs/Learn/Tools_and_testing/Git_та_GitHub /uk/docs/Learn/Tools_and_testing/GitHub +/uk/docs/Learn/Tools_and_testing/Розуміння_JavaScript-фреймворків_на_стороні_клієнта /uk/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks +/uk/docs/Learn/Tools_and_testing/Розуміння_JavaScript-фреймворків_на_стороні_клієнта/znayomymos_zi_svelte /uk/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_getting_started +/uk/docs/Learn/Tools_and_testing/Розуміння_інструментів_веб-розробки_на_стороні_клієнта /uk/docs/Learn/Tools_and_testing/Understanding_client-side_tools +/uk/docs/Learn/Tools_and_testing/Тестування_кросбраузерності /uk/docs/Learn/Tools_and_testing/Cross_browser_testing +/uk/docs/Learn/Доступність /uk/docs/Learn/Accessibility +/uk/docs/Learn/Навчання_та_отримання_допомоги /uk/docs/Learn/Learning_and_getting_help +/uk/docs/Learn/Фронт-енд_веб-розробник /uk/docs/Learn/Front-end_web_developer +/uk/docs/MDN/Community /uk/docs/orphaned/MDN/Community /uk/docs/MDN/Contribute/Guidelines /uk/docs/MDN/Guidelines -/uk/docs/MDN/Contribute/Guidelines/Настанови_зі_стилю /uk/docs/MDN/Guidelines/Настанови_зі_стилю +/uk/docs/MDN/Contribute/Guidelines/Настанови_зі_стилю /uk/docs/MDN/Guidelines/Writing_style_guide +/uk/docs/MDN/Contribute/Howto/Create_an_MDN_account /uk/docs/orphaned/MDN/Contribute/Howto/Create_an_MDN_account +/uk/docs/MDN/Contribute/Howto/Do_an_editorial_review /uk/docs/orphaned/MDN/Contribute/Howto/Do_an_editorial_review +/uk/docs/MDN/Contribute/Howto/Set_the_summary_for_a_page /uk/docs/orphaned/MDN/Contribute/Howto/Set_the_summary_for_a_page +/uk/docs/MDN/Contribute/Howto/Бета_тестування /uk/docs/orphaned/MDN/Contribute/Howto/Be_a_beta_tester +/uk/docs/MDN/Contribute/Howto/Як_створювати_й_редагувати_сторінки /uk/docs/MDN/Contribute/Howto/Create_and_edit_pages /uk/docs/MDN/Contribute/Structures /uk/docs/MDN/Structures -/uk/docs/MDN/Contribute/Structures/Шаблони /uk/docs/MDN/Structures/Шаблони -/uk/docs/MDN/Contribute/Structures/Шаблони/Загальновживані_шаблони /uk/docs/MDN/Structures/Шаблони/Загальновживані_шаблони +/uk/docs/MDN/Contribute/Structures/Шаблони /uk/docs/MDN/Structures/Macros +/uk/docs/MDN/Contribute/Structures/Шаблони/Загальновживані_шаблони /uk/docs/MDN/Structures/Macros/Commonly-used_macros /uk/docs/MDN/Contribute/Tools /uk/docs/MDN/Tools /uk/docs/MDN/Contribute/Tools/KumaScript /uk/docs/MDN/Tools/KumaScript -/uk/docs/MDN/Contribute/Tools/KumaScript/Усунення_помилок_KumaScript /uk/docs/MDN/Tools/KumaScript/Усунення_помилок_KumaScript +/uk/docs/MDN/Contribute/Tools/KumaScript/Усунення_помилок_KumaScript /uk/docs/MDN/Tools/KumaScript/Troubleshooting +/uk/docs/MDN/Guidelines/Настанови_зі_стилю /uk/docs/MDN/Guidelines/Writing_style_guide +/uk/docs/MDN/Kuma /uk/docs/MDN/Yari +/uk/docs/MDN/Structures/Шаблони /uk/docs/MDN/Structures/Macros +/uk/docs/MDN/Structures/Шаблони/Загальновживані_шаблони /uk/docs/MDN/Structures/Macros/Commonly-used_macros +/uk/docs/MDN/Tools/KumaScript/Усунення_помилок_KumaScript /uk/docs/MDN/Tools/KumaScript/Troubleshooting +/uk/docs/MDN/Про /uk/docs/MDN/About /uk/docs/MDN/з_чого_почати /uk/docs/MDN/Contribute/Getting_started +/uk/docs/Mozilla/Add-ons/WebExtensions/Що_таке_Web_Розширення /uk/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions +/uk/docs/Web/API/API_відображення_сторінки /uk/docs/Web/API/Page_Visibility_API +/uk/docs/Web/API/Canvas_API/Tutorial/Чутливі_ділянки_та_доступність /uk/docs/Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility +/uk/docs/Web/API/WindowTimers /uk/docs/conflicting/Web/API/WindowOrWorkerGlobalScope +/uk/docs/Web/API/WindowTimers/setTimeout /uk/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout +/uk/docs/Web/API/Подія /uk/docs/Web/API/Event +/uk/docs/Web/API/Подія/target /uk/docs/Web/API/Event/target +/uk/docs/Web/CSS/CSS_Animations/Використання_CSS_анімацій /uk/docs/Web/CSS/CSS_Animations/Using_CSS_animations +/uk/docs/Web/CSS/CSS_Box_Model/Згортання_відступів /uk/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing +/uk/docs/Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes /uk/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox /uk/docs/Web/CSS/attr /uk/docs/Web/CSS/attr() /uk/docs/Web/CSS/linear-gradient /uk/docs/Web/CSS/linear-gradient() +/uk/docs/Web/CSS/Альтернативні_таблиці_стилів /uk/docs/Web/CSS/Alternative_style_sheets +/uk/docs/Web/CSS/Довідник /uk/docs/Web/CSS/Reference +/uk/docs/Web/CSS/Коробчаста_модель_CSS /uk/docs/Web/CSS/CSS_Box_Model +/uk/docs/Web/CSS/Модель_візуального_формування /uk/docs/Web/CSS/Visual_formatting_model +/uk/docs/Web/CSS/Розмітка_кулінарна-книга /uk/docs/Web/CSS/Layout_cookbook +/uk/docs/Web/CSS/Схема_компонування /uk/docs/Web/CSS/Layout_mode +/uk/docs/Web/Events/DOMContentLoaded /uk/docs/Web/API/Window/DOMContentLoaded_event +/uk/docs/Web/Events/abort /uk/docs/Web/API/HTMLMediaElement/abort_event /uk/docs/Web/Guide/CSS /uk/docs/Learn/CSS +/uk/docs/Web/Guide/CSS/Getting_started /uk/docs/conflicting/Learn/CSS/First_steps +/uk/docs/Web/Guide/CSS/Getting_started/What_is_CSS /uk/docs/Learn/CSS/First_steps/How_CSS_works /uk/docs/Web/Guide/HTML /uk/docs/Learn/HTML +/uk/docs/Web/Guide/HTML/Використання_HTML-секцій_та_структура_документу /uk/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines /uk/docs/Web/Guide/HTML/Вступ /uk/docs/Learn/HTML/Introduction_to_HTML +/uk/docs/Web/Guide/Графіка /uk/docs/Web/Guide/Graphics +/uk/docs/Web/HTML/Довідник /uk/docs/Web/HTML/Reference +/uk/docs/Web/HTML/Елемент /uk/docs/Web/HTML/Element +/uk/docs/Web/HTML/Елемент/html /uk/docs/Web/HTML/Element/html +/uk/docs/Web/HTML/Елемент/iframe /uk/docs/Web/HTML/Element/iframe +/uk/docs/Web/HTML/Елемент/link /uk/docs/Web/HTML/Element/link +/uk/docs/Web/HTML/Елемент/nav /uk/docs/Web/HTML/Element/nav +/uk/docs/Web/HTML/Елемент/script /uk/docs/Web/HTML/Element/script +/uk/docs/Web/HTML/Елемент/section /uk/docs/Web/HTML/Element/section +/uk/docs/Web/HTML/Елемент/style /uk/docs/Web/HTML/Element/style +/uk/docs/Web/HTML/Елемент/table /uk/docs/Web/HTML/Element/table +/uk/docs/Web/HTML/Елемент/video /uk/docs/Web/HTML/Element/video +/uk/docs/Web/HTML/Елемент/Заголовок /uk/docs/Web/HTML/Element/header +/uk/docs/Web/HTML/Загальні_атрибути /uk/docs/Web/HTML/Global_attributes +/uk/docs/Web/HTML/Загальні_атрибути/hidden /uk/docs/Web/HTML/Global_attributes/hidden +/uk/docs/Web/HTML/Загальні_атрибути/itemscope /uk/docs/Web/HTML/Global_attributes/itemscope +/uk/docs/Web/HTML/Загальні_атрибути/lang /uk/docs/Web/HTML/Global_attributes/lang +/uk/docs/Web/HTML/Загальні_атрибути/tabindex /uk/docs/Web/HTML/Global_attributes/tabindex +/uk/docs/Web/HTML/Режим_сумісності_й_стандартний_режим /uk/docs/Web/HTML/Quirks_Mode_and_Standards_Mode +/uk/docs/Web/HTTP/Заголовки /uk/docs/Web/HTTP/Headers +/uk/docs/Web/HTTP/Заголовки/Accept-Encoding /uk/docs/Web/HTTP/Headers/Accept-Encoding +/uk/docs/Web/HTTP/Заголовки/Accept-Language /uk/docs/Web/HTTP/Headers/Accept-Language +/uk/docs/Web/HTTP/Заголовки/Connection /uk/docs/Web/HTTP/Headers/Connection +/uk/docs/Web/HTTP/Заголовки/Content-Length /uk/docs/Web/HTTP/Headers/Content-Length +/uk/docs/Web/HTTP/Заголовки/Content-Type /uk/docs/Web/HTTP/Headers/Content-Type +/uk/docs/Web/HTTP/Заголовки/ETag /uk/docs/Web/HTTP/Headers/ETag +/uk/docs/Web/HTTP/Заголовки/If-Match /uk/docs/Web/HTTP/Headers/If-Match +/uk/docs/Web/HTTP/Заголовки/Location /uk/docs/Web/HTTP/Headers/Location +/uk/docs/Web/HTTP/Заголовки/Referer /uk/docs/Web/HTTP/Headers/Referer +/uk/docs/Web/HTTP/Заголовки/User-Agent /uk/docs/Web/HTTP/Headers/User-Agent +/uk/docs/Web/HTTP/Заголовки/X-Forwarded-Proto /uk/docs/Web/HTTP/Headers/X-Forwarded-Proto +/uk/docs/Web/JavaScript/Guide/Dokladno_pro_Objectnu_Model /uk/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/uk/docs/Web/JavaScript/Guide/Вирази_та_оператори /uk/docs/Web/JavaScript/Guide/Expressions_and_Operators +/uk/docs/Web/JavaScript/Reference/Functions/Стрілкові_функції /uk/docs/Web/JavaScript/Reference/Functions/Arrow_functions +/uk/docs/Web/JavaScript/Reference/Functions/решта_параметрів /uk/docs/Web/JavaScript/Reference/Functions/rest_parameters +/uk/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype /uk/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype +/uk/docs/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype /uk/docs/orphaned/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype +/uk/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Boolean /uk/docs/Web/JavaScript/Reference/Global_Objects/Date/prototype /uk/docs/Web/JavaScript/Reference/Global_Objects/Date +/uk/docs/Web/JavaScript/Reference/Global_Objects/Error/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Error +/uk/docs/Web/JavaScript/Reference/Global_Objects/EvalError/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/EvalError +/uk/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Function +/uk/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/GeneratorFunction +/uk/docs/Web/JavaScript/Reference/Global_Objects/InternalError/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/InternalError +/uk/docs/Web/JavaScript/Reference/Global_Objects/Math/заокругелння /uk/docs/Web/JavaScript/Reference/Global_Objects/Math/round /uk/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype /uk/docs/Web/JavaScript/Reference/Global_Objects/Object -/uk/docs/Web/JavaScript/Reference/Operators/Оператор_поширення /uk/docs/Web/JavaScript/Reference/Operators/Оператор_розпакування +/uk/docs/Web/JavaScript/Reference/Global_Objects/Promise/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Promise +/uk/docs/Web/JavaScript/Reference/Global_Objects/Promise/відхилено /uk/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject +/uk/docs/Web/JavaScript/Reference/Global_Objects/RangeError/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/RangeError +/uk/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/ReferenceError +/uk/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError +/uk/docs/Web/JavaScript/Reference/Global_Objects/TypeError/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/TypeError +/uk/docs/Web/JavaScript/Reference/Global_Objects/URIError/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/URIError +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число /uk/docs/Web/JavaScript/Reference/Global_Objects/Number +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/EPSILON /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/MAX_SAFE_INTEGER /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/MAX_VALUE /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/MIN_SAFE_INTEGER /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/MIN_VALUE /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/NEGATIVE_INFINITY /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/NaN /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/NaN +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/Number /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/Number +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/POSITIVE_INFINITY /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/isFinite /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/isInteger /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/isNaN /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/isSafeInteger /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/parseFloat /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/parseInt /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/prototype /uk/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Number +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/toExponential /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/toFixed /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/toLocaleString /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/toPrecision /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/toSource /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/toSource +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/toString /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/toString +/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/valueOf /uk/docs/Web/JavaScript/Reference/Global_Objects/Number/valueOf +/uk/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators /uk/docs/conflicting/Web/JavaScript/Reference/Operators +/uk/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators /uk/docs/conflicting/Web/JavaScript/Reference/Operators_7c8eb9475d97a4a734c5991857698560 +/uk/docs/Web/JavaScript/Reference/Operators/Logical_Operators /uk/docs/conflicting/Web/JavaScript/Reference/Operators_f71733c8e7001a29c3ec40d8522a4aca +/uk/docs/Web/JavaScript/Reference/Operators/Ініціалізація_об’єктів /uk/docs/Web/JavaScript/Reference/Operators/Object_initializer +/uk/docs/Web/JavaScript/Reference/Operators/Деструктуризація /uk/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment +/uk/docs/Web/JavaScript/Reference/Operators/Оператор_поширення /uk/docs/conflicting/Web/JavaScript/Reference/Operators/Spread_syntax +/uk/docs/Web/JavaScript/Reference/Operators/Оператор_розпакування /uk/docs/conflicting/Web/JavaScript/Reference/Operators/Spread_syntax +/uk/docs/Web/JavaScript/Reference/Operators/Оператори_порівняння /uk/docs/conflicting/Web/JavaScript/Reference/Operators_a8aa9ce42ce1749862961c61113d120b +/uk/docs/Web/JavaScript/Reference/Operators/Оператори_присвоєння /uk/docs/conflicting/Web/JavaScript/Reference/Operators_1cd48548c16282df3883f99267726c3e +/uk/docs/Web/JavaScript/Reference/Statements/default /uk/docs/conflicting/Web/JavaScript/Reference/Statements/switch +/uk/docs/Web/JavaScript/Reference/Протоколи_перебору /uk/docs/Web/JavaScript/Reference/Iteration_protocols /uk/docs/Web/JavaScript/Reference/Список_методів /uk/docs/Web/JavaScript/Reference +/uk/docs/Web/JavaScript/oglyad_tehnologiy_JavaScript /uk/docs/Web/JavaScript/JavaScript_technologies_overview +/uk/docs/Web/JavaScript/Перевірка_на_рівність_та_однаковість /uk/docs/Web/JavaScript/Equality_comparisons_and_sameness +/uk/docs/Web/Гудіні /uk/docs/Web/Houdini /uk/docs/Web/Застосунки/Новітні /uk/docs/Web/Progressive_web_apps -/uk/docs/Оператор_розпакування /uk/docs/Web/JavaScript/Reference/Operators/Оператор_розпакування +/uk/docs/Web/Посібники /uk/docs/Web/Tutorials +/uk/docs/Інструменти /uk/docs/Tools +/uk/docs/Інструменти/Network_Monitor /uk/docs/Tools/Network_Monitor +/uk/docs/Інструменти/Network_Monitor/Performance_Analysis /uk/docs/Tools/Network_Monitor/Performance_Analysis +/uk/docs/Інструменти/Network_Monitor/Throttling /uk/docs/Tools/Network_Monitor/Throttling +/uk/docs/Інструменти/Network_Monitor/recording /uk/docs/Tools/Network_Monitor/recording +/uk/docs/Інструменти/Network_Monitor/request_details /uk/docs/Tools/Network_Monitor/request_details +/uk/docs/Інструменти/Network_Monitor/request_list /uk/docs/Tools/Network_Monitor/request_list +/uk/docs/Інструменти/Network_Monitor/toolbar /uk/docs/Tools/Network_Monitor/toolbar +/uk/docs/Інструменти/Web_Console /uk/docs/Tools/Web_Console +/uk/docs/Інструменти/Web_Console/Console_messages /uk/docs/Tools/Web_Console/Console_messages +/uk/docs/Інструменти/Web_Console/Opening_the_Web_Console /uk/docs/Tools/Web_Console/UI_Tour +/uk/docs/Інструменти/Web_Console/Split_console /uk/docs/Tools/Web_Console/Split_console +/uk/docs/Оператор_розпакування /uk/docs/conflicting/Web/JavaScript/Reference/Operators/Spread_syntax diff --git a/files/uk/_wikihistory.json b/files/uk/_wikihistory.json index e7e2113038..ccca22f234 100644 --- a/files/uk/_wikihistory.json +++ b/files/uk/_wikihistory.json @@ -85,12 +85,6 @@ "ivanprytula" ] }, - "Glossary/Block/Скриптинг": { - "modified": "2019-10-07T11:02:21.315Z", - "contributors": [ - "Pavlechko" - ] - }, "Glossary/Boolean": { "modified": "2019-05-04T17:39:14.904Z", "contributors": [ @@ -167,12 +161,6 @@ "ArtemLashmanov" ] }, - "Glossary/DTD": { - "modified": "2019-01-17T01:19:22.959Z", - "contributors": [ - "asmforce" - ] - }, "Glossary/Data_structure": { "modified": "2019-09-18T10:46:08.363Z", "contributors": [ @@ -593,205 +581,6 @@ "asmforce" ] }, - "Glossary/Інструкція": { - "modified": "2019-10-08T03:15:04.893Z", - "contributors": [ - "Pavlechko" - ] - }, - "Glossary/Інтернет": { - "modified": "2019-03-23T22:08:20.008Z", - "contributors": [ - "SKaznadei", - "asmforce" - ] - }, - "Glossary/Абстракція": { - "modified": "2019-03-23T22:30:29.962Z", - "contributors": [ - "asmforce", - "Kamilius" - ] - }, - "Glossary/Алгоритм": { - "modified": "2019-03-23T22:30:35.419Z", - "contributors": [ - "asmforce", - "Kamilius" - ] - }, - "Glossary/Арґумент": { - "modified": "2019-03-23T22:04:22.695Z", - "contributors": [ - "asmforce" - ] - }, - "Glossary/Буфер": { - "modified": "2019-03-23T22:07:54.933Z", - "contributors": [ - "asmforce" - ] - }, - "Glossary/Веб_Доступність": { - "modified": "2019-05-04T18:59:21.286Z", - "contributors": [ - "ArtemLashmanov", - "Kamilius" - ] - }, - "Glossary/Вікно_перегляду": { - "modified": "2019-03-23T22:08:34.368Z", - "contributors": [ - "asmforce" - ] - }, - "Glossary/ДК": { - "modified": "2019-03-18T21:34:51.796Z", - "contributors": [ - "SKaznadei" - ] - }, - "Glossary/Дешифрування": { - "modified": "2019-09-16T13:32:33.238Z", - "contributors": [ - "DollarPo8" - ] - }, - "Glossary/Динамічна_мова_програмування": { - "modified": "2019-03-18T21:43:52.488Z", - "contributors": [ - "bdvorianov" - ] - }, - "Glossary/Замикання": { - "modified": "2019-03-23T22:04:17.938Z", - "contributors": [ - "asmforce" - ] - }, - "Glossary/Змінна": { - "modified": "2019-03-23T22:09:07.757Z", - "contributors": [ - "asmforce" - ] - }, - "Glossary/Значення": { - "modified": "2019-03-23T22:09:28.718Z", - "contributors": [ - "asmforce" - ] - }, - "Glossary/Компіляція": { - "modified": "2019-03-18T21:35:41.310Z", - "contributors": [ - "Abalmazik" - ] - }, - "Glossary/Криптоаналіз": { - "modified": "2019-09-10T14:27:53.120Z", - "contributors": [ - "DollarPo8" - ] - }, - "Glossary/Криптографічна_геш-функція": { - "modified": "2019-09-18T10:42:51.504Z", - "contributors": [ - "DollarPo8" - ] - }, - "Glossary/Криптографія": { - "modified": "2019-09-10T13:13:46.945Z", - "contributors": [ - "DollarPo8" - ] - }, - "Glossary/Метод": { - "modified": "2019-07-18T12:27:02.669Z", - "contributors": [ - "DariaManko", - "asmforce", - "Kamilius" - ] - }, - "Glossary/ООП": { - "modified": "2019-05-16T18:01:52.440Z", - "contributors": [ - "ArtemLashmanov", - "asmforce" - ] - }, - "Glossary/Обгортка": { - "modified": "2019-03-23T22:08:15.564Z", - "contributors": [ - "asmforce" - ] - }, - "Glossary/Оператор": { - "modified": "2019-03-18T21:44:09.880Z", - "contributors": [ - "bdvorianov" - ] - }, - "Glossary/Посилання": { - "modified": "2019-03-18T21:34:47.720Z", - "contributors": [ - "SKaznadei" - ] - }, - "Glossary/Рекурсія": { - "modified": "2019-03-18T21:44:04.217Z", - "contributors": [ - "asmforce", - "bdvorianov" - ] - }, - "Glossary/Символ": { - "modified": "2020-12-14T08:56:37.459Z", - "contributors": [ - "DariaManko", - "raikune" - ] - }, - "Glossary/Тенета": { - "modified": "2019-03-18T20:37:36.381Z", - "contributors": [ - "romanstor", - "SKaznadei", - "asmforce" - ] - }, - "Glossary/Тип": { - "modified": "2019-03-23T22:09:27.817Z", - "contributors": [ - "asmforce" - ] - }, - "Glossary/Функція": { - "modified": "2019-07-01T07:43:55.787Z", - "contributors": [ - "DariaManko", - "bdvorianov" - ] - }, - "Glossary/Шифр": { - "modified": "2019-09-10T14:28:27.783Z", - "contributors": [ - "DollarPo8" - ] - }, - "Glossary/Шифротекст": { - "modified": "2019-09-12T14:19:30.255Z", - "contributors": [ - "DollarPo8" - ] - }, - "Glossary/ідентифікатор": { - "modified": "2019-03-23T22:11:07.008Z", - "contributors": [ - "asmforce", - "yuraantonov" - ] - }, "Learn": { "modified": "2020-07-16T22:43:48.924Z", "contributors": [ @@ -825,12 +614,6 @@ "sonia-ko" ] }, - "Learn/CSS/CSS_розмітка": { - "modified": "2020-07-25T19:25:57.955Z", - "contributors": [ - "nepiravno" - ] - }, "Learn/CSS/First_steps": { "modified": "2020-07-25T19:19:07.223Z", "contributors": [ @@ -838,12 +621,6 @@ "SergiyLuckys" ] }, - "Learn/CSS/First_steps/Що_таке_CSS": { - "modified": "2020-10-15T22:22:31.879Z", - "contributors": [ - "SergiyLuckys" - ] - }, "Learn/CSS/Styling_text": { "modified": "2020-07-25T19:23:28.097Z", "contributors": [ @@ -851,12 +628,6 @@ "wilton-cruz" ] }, - "Learn/CSS/Styling_text/Стилі_списків": { - "modified": "2020-07-16T22:26:15.367Z", - "contributors": [ - "MykolaCompany" - ] - }, "Learn/Common_questions": { "modified": "2020-07-16T22:35:27.609Z", "contributors": [ @@ -952,12 +723,6 @@ "mdymytrova" ] }, - "Learn/Getting_started_with_the_web/Інтернет_та_веб-стандарти": { - "modified": "2020-07-25T20:32:44.440Z", - "contributors": [ - "nepiravno" - ] - }, "Learn/HTML": { "modified": "2020-07-16T22:22:24.960Z", "contributors": [ @@ -966,20 +731,6 @@ "hadleyel" ] }, - "Learn/HTML/Forms": { - "modified": "2020-07-25T20:03:44.978Z", - "contributors": [ - "nepiravno", - "Yurii_Horbach", - "feel13good" - ] - }, - "Learn/HTML/Forms/Your_first_form": { - "modified": "2020-07-16T22:21:07.366Z", - "contributors": [ - "pelyp47" - ] - }, "Learn/HTML/Introduction_to_HTML": { "modified": "2020-07-16T22:22:53.922Z", "contributors": [ @@ -1019,13 +770,6 @@ "websunsey" ] }, - "Learn/HTML/Introduction_to_HTML/scho_v_head_metadani_v_HTML": { - "modified": "2020-07-16T22:23:25.057Z", - "contributors": [ - "ArtemLashmanov", - "websunsey" - ] - }, "Learn/HTML/Multimedia_and_embedding": { "modified": "2020-07-16T22:24:29.703Z", "contributors": [ @@ -1043,12 +787,6 @@ "feel13good" ] }, - "Learn/How_to_contribute": { - "modified": "2020-07-16T22:33:46.744Z", - "contributors": [ - "bohdan009" - ] - }, "Learn/JavaScript": { "modified": "2020-07-16T22:29:45.640Z", "contributors": [ @@ -1098,18 +836,6 @@ "HelgeUa" ] }, - "Learn/JavaScript/Асинхронний": { - "modified": "2020-07-25T19:53:57.083Z", - "contributors": [ - "nepiravno" - ] - }, - "Learn/JavaScript/Будівельні_блоки": { - "modified": "2020-07-25T19:43:30.011Z", - "contributors": [ - "nepiravno" - ] - }, "Learn/Server-side": { "modified": "2020-07-16T22:36:02.652Z", "contributors": [ @@ -1147,87 +873,30 @@ "chrisdavidmills" ] }, - "Learn/Tools_and_testing/Git_та_GitHub": { - "modified": "2020-07-25T20:26:40.197Z", + "MDN": { + "modified": "2020-02-19T18:40:00.793Z", "contributors": [ - "nepiravno" + "jswisher", + "SphinxKnight", + "wbamberg", + "asmforce", + "trofima", + "yuraantonov", + "imrock", + "Jeremie" ] }, - "Learn/Tools_and_testing/Розуміння_JavaScript-фреймворків_на_стороні_клієнта": { - "modified": "2020-07-25T20:53:33.045Z", + "MDN/Contribute": { + "modified": "2019-03-23T22:38:54.409Z", "contributors": [ - "nepiravno" + "wbamberg", + "asmforce", + "websunsey", + "chrisdavidmills" ] }, - "Learn/Tools_and_testing/Розуміння_JavaScript-фреймворків_на_стороні_клієнта/znayomymos_zi_svelte": { - "modified": "2020-08-22T19:18:21.080Z", - "contributors": [ - "thedenoff" - ] - }, - "Learn/Tools_and_testing/Розуміння_інструментів_веб-розробки_на_стороні_клієнта": { - "modified": "2020-07-25T20:47:10.306Z", - "contributors": [ - "nepiravno" - ] - }, - "Learn/Tools_and_testing/Тестування_кросбраузерності": { - "modified": "2020-07-25T20:16:06.008Z", - "contributors": [ - "nepiravno" - ] - }, - "Learn/Доступність": { - "modified": "2020-07-25T20:18:04.756Z", - "contributors": [ - "nepiravno" - ] - }, - "Learn/Навчання_та_отримання_допомоги": { - "modified": "2020-07-25T20:34:14.558Z", - "contributors": [ - "nepiravno" - ] - }, - "Learn/Фронт-енд_веб-розробник": { - "modified": "2020-07-26T07:04:16.114Z", - "contributors": [ - "nepiravno" - ] - }, - "MDN": { - "modified": "2020-02-19T18:40:00.793Z", - "contributors": [ - "jswisher", - "SphinxKnight", - "wbamberg", - "asmforce", - "trofima", - "yuraantonov", - "imrock", - "Jeremie" - ] - }, - "MDN/Community": { - "modified": "2019-09-11T08:00:43.055Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "asmforce", - "yuraantonov" - ] - }, - "MDN/Contribute": { - "modified": "2019-03-23T22:38:54.409Z", - "contributors": [ - "wbamberg", - "asmforce", - "websunsey", - "chrisdavidmills" - ] - }, - "MDN/Contribute/Getting_started": { - "modified": "2020-09-30T17:16:41.938Z", + "MDN/Contribute/Getting_started": { + "modified": "2020-09-30T17:16:41.938Z", "contributors": [ "chrisdavidmills", "wbamberg", @@ -1246,44 +915,6 @@ "jswisher" ] }, - "MDN/Contribute/Howto/Create_an_MDN_account": { - "modified": "2019-01-17T02:06:23.808Z", - "contributors": [ - "wbamberg", - "yuraantonov" - ] - }, - "MDN/Contribute/Howto/Do_an_editorial_review": { - "modified": "2020-09-04T18:11:30.511Z", - "contributors": [ - "borysl", - "wbamberg", - "asmforce", - "kuki" - ] - }, - "MDN/Contribute/Howto/Set_the_summary_for_a_page": { - "modified": "2019-03-23T22:05:10.058Z", - "contributors": [ - "wbamberg", - "ivaskonyan" - ] - }, - "MDN/Contribute/Howto/Бета_тестування": { - "modified": "2019-03-18T21:45:25.216Z", - "contributors": [ - "wbamberg", - "asmforce" - ] - }, - "MDN/Contribute/Howto/Як_створювати_й_редагувати_сторінки": { - "modified": "2019-08-06T16:49:19.554Z", - "contributors": [ - "html5beginner", - "wbamberg", - "asmforce" - ] - }, "MDN/Guidelines": { "modified": "2020-09-30T15:32:09.261Z", "contributors": [ @@ -1293,25 +924,6 @@ "jswisher" ] }, - "MDN/Guidelines/Настанови_зі_стилю": { - "modified": "2020-09-30T15:32:10.012Z", - "contributors": [ - "chrisdavidmills", - "jswisher", - "Pavlechko", - "wbamberg", - "BezZaboT", - "asmforce" - ] - }, - "MDN/Kuma": { - "modified": "2019-09-09T15:54:27.754Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "asmforce" - ] - }, "MDN/Structures": { "modified": "2020-09-30T12:57:34.758Z", "contributors": [ @@ -1321,25 +933,6 @@ "jswisher" ] }, - "MDN/Structures/Шаблони": { - "modified": "2020-09-30T12:57:34.918Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "asmforce" - ] - }, - "MDN/Structures/Шаблони/Загальновживані_шаблони": { - "modified": "2020-09-30T12:57:35.379Z", - "contributors": [ - "chrisdavidmills", - "memodim.di", - "wbamberg", - "teoli", - "fscholz", - "asmforce" - ] - }, "MDN/Tools": { "modified": "2020-09-30T16:54:47.325Z", "contributors": [ @@ -1357,23 +950,6 @@ "jwhitlock" ] }, - "MDN/Tools/KumaScript/Усунення_помилок_KumaScript": { - "modified": "2020-09-30T16:54:47.555Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "asmforce" - ] - }, - "MDN/Про": { - "modified": "2019-09-09T15:23:18.385Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "asmforce", - "OlexandrIlchenko" - ] - }, "Mozilla": { "modified": "2019-03-23T22:16:17.031Z", "contributors": [ @@ -1417,12 +993,6 @@ "cloudgnome" ] }, - "Mozilla/Add-ons/WebExtensions/Що_таке_Web_Розширення": { - "modified": "2019-03-18T21:05:11.899Z", - "contributors": [ - "leofun01" - ] - }, "Mozilla/Firefox": { "modified": "2019-09-10T14:53:23.406Z", "contributors": [ @@ -1507,12 +1077,6 @@ "Sergiy_Luckys" ] }, - "Web/API/API_відображення_сторінки": { - "modified": "2020-10-15T22:29:33.453Z", - "contributors": [ - "memodim.di" - ] - }, "Web/API/Ambient_Light_Events": { "modified": "2020-10-27T06:20:23.810Z", "contributors": [ @@ -1546,12 +1110,6 @@ "alexeeva.iryna" ] }, - "Web/API/Canvas_API/Tutorial/Чутливі_ділянки_та_доступність": { - "modified": "2019-03-23T22:08:43.488Z", - "contributors": [ - "asmforce" - ] - }, "Web/API/Console": { "modified": "2019-03-23T22:08:16.158Z", "contributors": [ @@ -1888,20 +1446,6 @@ "Bzbarsky" ] }, - "Web/API/WindowTimers": { - "modified": "2019-03-23T22:25:44.821Z", - "contributors": [ - "Sheppy" - ] - }, - "Web/API/WindowTimers/setTimeout": { - "modified": "2019-03-23T22:25:41.478Z", - "contributors": [ - "jurkobanzaj", - "Rozelin", - "Kamilius" - ] - }, "Web/API/XMLHttpRequest": { "modified": "2020-10-15T21:59:05.751Z", "contributors": [ @@ -1911,21 +1455,6 @@ "Jedipedia" ] }, - "Web/API/Подія": { - "modified": "2020-04-15T04:26:09.031Z", - "contributors": [ - "vera-design", - "yuraantonov" - ] - }, - "Web/API/Подія/target": { - "modified": "2020-08-08T10:32:59.036Z", - "contributors": [ - "Vandeko1", - "curtdp", - "yuraantonov" - ] - }, "Web/Accessibility": { "modified": "2019-09-11T08:24:19.079Z", "contributors": [ @@ -2016,18 +1545,6 @@ "GiorgioLviv" ] }, - "Web/CSS/CSS_Animations/Використання_CSS_анімацій": { - "modified": "2019-03-23T22:07:52.924Z", - "contributors": [ - "GiorgioLviv" - ] - }, - "Web/CSS/CSS_Box_Model/Згортання_відступів": { - "modified": "2019-03-23T22:08:26.711Z", - "contributors": [ - "asmforce" - ] - }, "Web/CSS/CSS_Flexible_Box_Layout": { "modified": "2019-03-23T22:35:53.862Z", "contributors": [ @@ -2035,12 +1552,6 @@ "chrisdavidmills" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes": { - "modified": "2019-03-23T22:35:58.219Z", - "contributors": [ - "animatio" - ] - }, "Web/CSS/CSS_Grid_Layout": { "modified": "2020-11-15T20:09:00.015Z", "contributors": [ @@ -2172,45 +1683,6 @@ "mr-vikster" ] }, - "Web/CSS/Альтернативні_таблиці_стилів": { - "modified": "2019-03-23T22:20:16.657Z", - "contributors": [ - "asmforce" - ] - }, - "Web/CSS/Довідник": { - "modified": "2019-11-24T18:02:08.214Z", - "contributors": [ - "yuraantonov" - ] - }, - "Web/CSS/Коробчаста_модель_CSS": { - "modified": "2019-03-23T22:08:28.621Z", - "contributors": [ - "asmforce", - "mfluehr" - ] - }, - "Web/CSS/Модель_візуального_формування": { - "modified": "2020-04-17T11:33:03.035Z", - "contributors": [ - "ablackrain", - "olegsava", - "asmforce" - ] - }, - "Web/CSS/Розмітка_кулінарна-книга": { - "modified": "2020-07-25T19:29:27.695Z", - "contributors": [ - "nepiravno" - ] - }, - "Web/CSS/Схема_компонування": { - "modified": "2019-03-23T22:08:35.177Z", - "contributors": [ - "asmforce" - ] - }, "Web/Events": { "modified": "2019-04-30T14:15:07.936Z", "contributors": [ @@ -2218,24 +1690,6 @@ "teoli" ] }, - "Web/Events/DOMContentLoaded": { - "modified": "2019-04-30T14:16:03.506Z", - "contributors": [ - "wbamberg", - "AndriiZ", - "fscholz", - "alekseichuk", - "AlinaKuzmenko" - ] - }, - "Web/Events/abort": { - "modified": "2019-04-30T14:23:14.164Z", - "contributors": [ - "wbamberg", - "fscholz", - "CosmicBoris" - ] - }, "Web/Guide": { "modified": "2019-03-23T22:38:59.502Z", "contributors": [ @@ -2245,19 +1699,6 @@ "jsx" ] }, - "Web/Guide/CSS/Getting_started": { - "modified": "2019-03-23T22:37:37.659Z", - "contributors": [ - "ASeegull", - "yuraantonov" - ] - }, - "Web/Guide/CSS/Getting_started/What_is_CSS": { - "modified": "2019-03-23T22:21:20.519Z", - "contributors": [ - "ASeegull" - ] - }, "Web/Guide/HTML/Content_categories": { "modified": "2019-03-23T22:33:28.403Z", "contributors": [ @@ -2276,20 +1717,6 @@ "assanovstan" ] }, - "Web/Guide/HTML/Використання_HTML-секцій_та_структура_документу": { - "modified": "2019-03-18T20:54:41.113Z", - "contributors": [ - "litashg", - "Efimenko", - "yakubiv" - ] - }, - "Web/Guide/Графіка": { - "modified": "2019-03-23T22:38:59.184Z", - "contributors": [ - "v.h.f.u" - ] - }, "Web/HTML": { "modified": "2020-11-03T15:06:00.529Z", "contributors": [ @@ -2344,126 +1771,6 @@ "mdymytrova" ] }, - "Web/HTML/Довідник": { - "modified": "2019-09-09T07:23:26.420Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "asmforce", - "v.h.f.u" - ] - }, - "Web/HTML/Елемент": { - "modified": "2020-04-04T20:48:11.630Z", - "contributors": [ - "Neonas", - "yuraantonov" - ] - }, - "Web/HTML/Елемент/html": { - "modified": "2019-03-23T22:36:12.142Z", - "contributors": [ - "asmforce", - "yuraantonov" - ] - }, - "Web/HTML/Елемент/iframe": { - "modified": "2020-11-06T03:47:28.747Z", - "contributors": [ - "SphinxKnight", - "melnykvlados" - ] - }, - "Web/HTML/Елемент/link": { - "modified": "2020-10-15T22:15:13.454Z", - "contributors": [ - "AndriyDarmits" - ] - }, - "Web/HTML/Елемент/nav": { - "modified": "2020-10-15T21:46:13.795Z", - "contributors": [ - "bulvvkoxide", - "asmforce", - "Kamilius" - ] - }, - "Web/HTML/Елемент/script": { - "modified": "2020-10-15T22:25:25.196Z", - "contributors": [ - "DANICHMOMO" - ] - }, - "Web/HTML/Елемент/section": { - "modified": "2019-03-23T22:21:37.735Z", - "contributors": [ - "bulvvkoxide", - "yuraantonov" - ] - }, - "Web/HTML/Елемент/style": { - "modified": "2019-03-23T22:20:18.231Z", - "contributors": [ - "asmforce" - ] - }, - "Web/HTML/Елемент/table": { - "modified": "2020-10-15T22:34:06.777Z", - "contributors": [ - "borysl" - ] - }, - "Web/HTML/Елемент/video": { - "modified": "2020-10-15T22:22:00.012Z", - "contributors": [ - "AndriiZ" - ] - }, - "Web/HTML/Елемент/Заголовок": { - "modified": "2019-03-23T22:10:15.473Z", - "contributors": [ - "yuraantonov" - ] - }, - "Web/HTML/Загальні_атрибути": { - "modified": "2019-05-03T05:34:55.602Z", - "contributors": [ - "asmforce" - ] - }, - "Web/HTML/Загальні_атрибути/hidden": { - "modified": "2020-10-15T22:16:02.593Z", - "contributors": [ - "khomyakdi" - ] - }, - "Web/HTML/Загальні_атрибути/itemscope": { - "modified": "2020-02-27T17:18:48.824Z", - "contributors": [ - "pelyp47", - "AlinaKuzmenko", - "nemishkor" - ] - }, - "Web/HTML/Загальні_атрибути/lang": { - "modified": "2020-10-15T22:17:22.681Z", - "contributors": [ - "asmforce", - "HA3IK" - ] - }, - "Web/HTML/Загальні_атрибути/tabindex": { - "modified": "2020-10-15T22:29:23.358Z", - "contributors": [ - "memodim.di" - ] - }, - "Web/HTML/Режим_сумісності_й_стандартний_режим": { - "modified": "2019-03-18T21:46:42.475Z", - "contributors": [ - "asmforce" - ] - }, "Web/HTTP": { "modified": "2019-10-07T17:34:30.130Z", "contributors": [ @@ -2591,87 +1898,12 @@ "AdriandeCita" ] }, - "Web/HTTP/Заголовки": { - "modified": "2019-07-09T04:41:30.590Z", - "contributors": [ - "WildeMax", - "savbace", - "pupenasan", - "curdwithraisins" - ] - }, "Web/HTTP/Заголовки/Accept": { "modified": "2019-03-18T21:11:57.961Z", "contributors": [ "liwc0329" ] }, - "Web/HTTP/Заголовки/Accept-Encoding": { - "modified": "2020-10-15T22:13:34.607Z", - "contributors": [ - "pupenasan" - ] - }, - "Web/HTTP/Заголовки/Accept-Language": { - "modified": "2020-10-15T22:13:27.393Z", - "contributors": [ - "pupenasan" - ] - }, - "Web/HTTP/Заголовки/Connection": { - "modified": "2020-10-15T22:13:31.957Z", - "contributors": [ - "pupenasan" - ] - }, - "Web/HTTP/Заголовки/Content-Length": { - "modified": "2020-10-15T22:13:38.034Z", - "contributors": [ - "pupenasan" - ] - }, - "Web/HTTP/Заголовки/Content-Type": { - "modified": "2020-10-15T22:13:30.716Z", - "contributors": [ - "pupenasan" - ] - }, - "Web/HTTP/Заголовки/ETag": { - "modified": "2020-10-15T22:03:56.430Z", - "contributors": [ - "cloudgnome" - ] - }, - "Web/HTTP/Заголовки/If-Match": { - "modified": "2020-10-15T22:04:01.753Z", - "contributors": [ - "cloudgnome" - ] - }, - "Web/HTTP/Заголовки/Location": { - "modified": "2020-10-15T22:13:34.509Z", - "contributors": [ - "pupenasan" - ] - }, - "Web/HTTP/Заголовки/Referer": { - "modified": "2020-10-15T21:57:21.223Z", - "contributors": [ - "websunsey" - ] - }, - "Web/HTTP/Заголовки/User-Agent": { - "modified": "2020-10-15T22:04:15.494Z", - "contributors": [ - "Sestowner" - ] - }, - "Web/HTTP/Заголовки/X-Forwarded-Proto": { - "modified": "2020-10-15T22:22:50.826Z", - "contributors": [ - "nakhodkiin" - ] - }, "Web/JavaScript": { "modified": "2020-06-03T04:55:28.354Z", "contributors": [ @@ -2775,14 +2007,6 @@ "DariaManko" ] }, - "Web/JavaScript/Guide/Dokladno_pro_Objectnu_Model": { - "modified": "2020-03-12T19:45:23.579Z", - "contributors": [ - "AdriandeCita", - "wbamberg", - "PavloEleva" - ] - }, "Web/JavaScript/Guide/Functions": { "modified": "2020-03-12T19:47:17.480Z", "contributors": [ @@ -2873,15 +2097,6 @@ "DariaManko" ] }, - "Web/JavaScript/Guide/Вирази_та_оператори": { - "modified": "2020-03-12T19:46:18.944Z", - "contributors": [ - "DariaManko", - "kwitochka", - "Onimi", - "OleksandrPelepey" - ] - }, "Web/JavaScript/Inheritance_and_the_prototype_chain": { "modified": "2020-03-12T19:46:05.953Z", "contributors": [ @@ -3066,24 +2281,6 @@ "trofima" ] }, - "Web/JavaScript/Reference/Functions/Стрілкові_функції": { - "modified": "2020-10-15T21:59:14.617Z", - "contributors": [ - "maisteRR", - "asmforce", - "vberestovskyi", - "krizik", - "ahavianiri" - ] - }, - "Web/JavaScript/Reference/Functions/решта_параметрів": { - "modified": "2020-10-15T21:55:37.826Z", - "contributors": [ - "DariaManko", - "fscholz", - "trofima" - ] - }, "Web/JavaScript/Reference/Global_Objects": { "modified": "2020-03-12T19:43:13.900Z", "contributors": [ @@ -3321,14 +2518,6 @@ "makk" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/prototype": { - "modified": "2020-10-15T21:46:48.879Z", - "contributors": [ - "DariaManko", - "piton13", - "nesteant" - ] - }, "Web/JavaScript/Reference/Global_Objects/Array/push": { "modified": "2020-10-15T22:20:55.331Z", "contributors": [ @@ -3421,12 +2610,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype": { - "modified": "2020-10-15T22:26:05.753Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Global_Objects/BigInt": { "modified": "2020-10-15T22:32:52.326Z", "contributors": [ @@ -3483,13 +2666,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/Boolean/prototype": { - "modified": "2020-10-15T22:06:14.618Z", - "contributors": [ - "DariaManko", - "AdriandeCita" - ] - }, "Web/JavaScript/Reference/Global_Objects/Boolean/toSource": { "modified": "2020-10-15T22:06:15.795Z", "contributors": [ @@ -3887,12 +3063,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/Error/prototype": { - "modified": "2020-10-15T22:18:21.094Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Global_Objects/Error/toSource": { "modified": "2020-10-15T22:18:40.791Z", "contributors": [ @@ -3911,12 +3081,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/EvalError/prototype": { - "modified": "2020-10-15T22:18:43.111Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Global_Objects/Function": { "modified": "2020-10-15T21:45:49.819Z", "contributors": [ @@ -3981,12 +3145,6 @@ "Kelebor" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/prototype": { - "modified": "2020-10-15T22:21:50.690Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Global_Objects/Function/toSource": { "modified": "2020-10-15T22:21:38.211Z", "contributors": [ @@ -4029,12 +3187,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype": { - "modified": "2020-10-15T22:25:30.929Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Global_Objects/Infinity": { "modified": "2020-10-15T22:21:06.954Z", "contributors": [ @@ -4047,12 +3199,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/InternalError/prototype": { - "modified": "2020-10-15T22:18:47.273Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Global_Objects/JSON": { "modified": "2020-10-15T21:49:10.555Z", "contributors": [ @@ -4351,16 +3497,8 @@ "AdriandeCita" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/заокругелння": { - "modified": "2020-10-15T21:54:59.380Z", - "contributors": [ - "AdriandeCita", - "yurii-kozak", - "yuraantonov" - ] - }, - "Web/JavaScript/Reference/Global_Objects/NaN": { - "modified": "2020-10-15T22:06:16.467Z", + "Web/JavaScript/Reference/Global_Objects/NaN": { + "modified": "2020-10-15T22:06:16.467Z", "contributors": [ "DariaManko", "AdriandeCita" @@ -4663,12 +3801,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/prototype": { - "modified": "2020-10-15T21:51:58.196Z", - "contributors": [ - "piton13" - ] - }, "Web/JavaScript/Reference/Global_Objects/Promise/race": { "modified": "2020-10-15T22:03:35.608Z", "contributors": [ @@ -4689,13 +3821,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/відхилено": { - "modified": "2020-10-15T21:53:08.281Z", - "contributors": [ - "DariaManko", - "piton13" - ] - }, "Web/JavaScript/Reference/Global_Objects/Proxy": { "modified": "2020-10-15T21:59:11.773Z", "contributors": [ @@ -4709,24 +3834,12 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/RangeError/prototype": { - "modified": "2020-10-15T22:18:03.049Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Global_Objects/ReferenceError": { "modified": "2020-10-15T22:18:21.096Z", "contributors": [ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype": { - "modified": "2020-10-15T22:18:46.456Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Global_Objects/Reflect": { "modified": "2020-10-15T22:24:05.788Z", "contributors": [ @@ -5248,37 +4361,18 @@ "asmforce" ] }, - "Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype": { - "modified": "2020-10-15T21:58:51.957Z", - "contributors": [ - "DariaManko", - "asmforce" - ] - }, "Web/JavaScript/Reference/Global_Objects/TypeError": { "modified": "2020-10-15T22:18:20.714Z", "contributors": [ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/TypeError/prototype": { - "modified": "2020-10-15T22:18:47.800Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Global_Objects/URIError": { "modified": "2020-10-15T22:18:21.321Z", "contributors": [ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/URIError/prototype": { - "modified": "2020-10-15T22:18:47.179Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Global_Objects/eval": { "modified": "2020-10-15T22:23:55.707Z", "contributors": [ @@ -5337,157 +4431,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Global_Objects/Число": { - "modified": "2020-10-15T21:55:15.973Z", - "contributors": [ - "DariaManko", - "asmforce", - "justlp", - "yuri_spivak" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/EPSILON": { - "modified": "2020-10-15T22:06:24.197Z", - "contributors": [ - "DariaManko", - "AdriandeCita" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/MAX_SAFE_INTEGER": { - "modified": "2020-10-15T22:06:24.055Z", - "contributors": [ - "DariaManko", - "AdriandeCita" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/MAX_VALUE": { - "modified": "2020-10-15T22:31:47.123Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/MIN_SAFE_INTEGER": { - "modified": "2020-10-15T22:31:49.130Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/MIN_VALUE": { - "modified": "2020-10-15T22:32:00.610Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/NEGATIVE_INFINITY": { - "modified": "2020-10-15T22:31:57.386Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/NaN": { - "modified": "2020-10-15T22:31:57.609Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/Number": { - "modified": "2020-10-15T22:31:48.346Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/POSITIVE_INFINITY": { - "modified": "2020-10-15T22:32:15.213Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/isFinite": { - "modified": "2020-10-15T22:32:15.212Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/isInteger": { - "modified": "2020-10-15T22:19:10.892Z", - "contributors": [ - "DariaManko", - "abmd" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/isNaN": { - "modified": "2020-10-15T22:32:17.922Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/isSafeInteger": { - "modified": "2020-10-15T22:32:15.124Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/parseFloat": { - "modified": "2020-10-15T22:32:15.375Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/parseInt": { - "modified": "2020-10-15T22:32:20.201Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/prototype": { - "modified": "2020-10-15T21:56:21.125Z", - "contributors": [ - "asmforce" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/toExponential": { - "modified": "2020-10-15T22:29:41.228Z", - "contributors": [ - "DariaManko", - "taraskundyk" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/toFixed": { - "modified": "2020-10-15T22:32:23.109Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/toLocaleString": { - "modified": "2020-10-15T22:32:24.740Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/toPrecision": { - "modified": "2020-10-15T22:32:25.165Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/toSource": { - "modified": "2020-10-15T22:32:25.603Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/toString": { - "modified": "2020-10-15T22:32:26.957Z", - "contributors": [ - "DariaManko" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Число/valueOf": { - "modified": "2020-10-15T22:32:27.402Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Lexical_grammar": { "modified": "2020-10-15T22:30:14.109Z", "contributors": [ @@ -5513,12 +4456,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Operators/Arithmetic_Operators": { - "modified": "2020-10-15T22:24:28.585Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Operators/Assignment": { "modified": "2020-10-15T22:31:11.201Z", "contributors": [ @@ -5555,12 +4492,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Operators/Bitwise_Operators": { - "modified": "2020-10-15T22:24:24.851Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Operators/Bitwise_XOR": { "modified": "2020-10-15T22:31:14.931Z", "contributors": [ @@ -5693,12 +4624,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Operators/Logical_Operators": { - "modified": "2020-10-15T22:24:49.649Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Operators/Multiplication": { "modified": "2020-10-15T22:30:49.518Z", "contributors": [ @@ -5919,49 +4844,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Operators/Ініціалізація_об’єктів": { - "modified": "2020-10-15T21:53:09.316Z", - "contributors": [ - "DariaManko", - "trofima" - ] - }, - "Web/JavaScript/Reference/Operators/Деструктуризація": { - "modified": "2020-03-12T19:45:50.341Z", - "contributors": [ - "savbace", - "trofima" - ] - }, - "Web/JavaScript/Reference/Operators/Оператор_розпакування": { - "modified": "2020-03-12T19:45:50.602Z", - "contributors": [ - "Lancer92", - "Artem2011", - "devalf", - "trofima", - "KadirTopal" - ] - }, - "Web/JavaScript/Reference/Operators/Оператори_порівняння": { - "modified": "2020-10-15T21:57:25.055Z", - "contributors": [ - "DariaManko", - "Onimi", - "Anonymous", - "GrytsiukSerhiy", - "asmforce" - ] - }, - "Web/JavaScript/Reference/Operators/Оператори_присвоєння": { - "modified": "2020-10-15T21:53:06.640Z", - "contributors": [ - "DariaManko", - "wbamberg", - "Onimi", - "trofima" - ] - }, "Web/JavaScript/Reference/Statements": { "modified": "2020-10-15T21:49:08.697Z", "contributors": [ @@ -6017,12 +4899,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Statements/default": { - "modified": "2020-10-15T22:22:48.978Z", - "contributors": [ - "DariaManko" - ] - }, "Web/JavaScript/Reference/Statements/do...while": { "modified": "2020-10-15T22:22:14.530Z", "contributors": [ @@ -6153,27 +5029,6 @@ "DariaManko" ] }, - "Web/JavaScript/Reference/Протоколи_перебору": { - "modified": "2020-03-12T19:47:16.437Z", - "contributors": [ - "DariaManko", - "asmforce" - ] - }, - "Web/JavaScript/oglyad_tehnologiy_JavaScript": { - "modified": "2020-03-12T19:45:24.334Z", - "contributors": [ - "PavloEleva" - ] - }, - "Web/JavaScript/Перевірка_на_рівність_та_однаковість": { - "modified": "2020-03-12T19:47:10.878Z", - "contributors": [ - "DariaManko", - "gshadura", - "asmforce" - ] - }, "Web/Progressive_web_apps": { "modified": "2019-03-23T22:00:18.455Z", "contributors": [ @@ -6203,22 +5058,995 @@ "chrisdavidmills" ] }, - "Web/Гудіні": { - "modified": "2020-01-12T13:13:12.436Z", + "Glossary/Block/Scripting": { + "modified": "2019-10-07T11:02:21.315Z", "contributors": [ - "AndriyTykhan" + "Pavlechko" ] }, - "Web/Посібники": { - "modified": "2020-03-16T20:18:27.566Z", + "Glossary/Abstraction": { + "modified": "2019-03-23T22:30:29.962Z", "contributors": [ - "w3schoolsrus", - "html5beginner", - "MilaYoga", - "assanovstan" + "asmforce", + "Kamilius" + ] + }, + "Glossary/Algorithm": { + "modified": "2019-03-23T22:30:35.419Z", + "contributors": [ + "asmforce", + "Kamilius" + ] + }, + "Glossary/Argument": { + "modified": "2019-03-23T22:04:22.695Z", + "contributors": [ + "asmforce" + ] + }, + "Glossary/buffer": { + "modified": "2019-03-23T22:07:54.933Z", + "contributors": [ + "asmforce" + ] + }, + "Glossary/Accessibility": { + "modified": "2019-05-04T18:59:21.286Z", + "contributors": [ + "ArtemLashmanov", + "Kamilius" + ] + }, + "Glossary/Viewport": { + "modified": "2019-03-23T22:08:34.368Z", + "contributors": [ + "asmforce" + ] + }, + "Glossary/Decryption": { + "modified": "2019-09-16T13:32:33.238Z", + "contributors": [ + "DollarPo8" + ] + }, + "Glossary/Dynamic_programming_language": { + "modified": "2019-03-18T21:43:52.488Z", + "contributors": [ + "bdvorianov" + ] + }, + "Glossary/UX": { + "modified": "2019-03-18T21:34:51.796Z", + "contributors": [ + "SKaznadei" + ] + }, + "Glossary/Closure": { + "modified": "2019-03-23T22:04:17.938Z", + "contributors": [ + "asmforce" + ] + }, + "Glossary/Variable": { + "modified": "2019-03-23T22:09:07.757Z", + "contributors": [ + "asmforce" + ] + }, + "Glossary/Value": { + "modified": "2019-03-23T22:09:28.718Z", + "contributors": [ + "asmforce" + ] + }, + "Glossary/Identifier": { + "modified": "2019-03-23T22:11:07.008Z", + "contributors": [ + "asmforce", + "yuraantonov" + ] + }, + "Glossary/Statement": { + "modified": "2019-10-08T03:15:04.893Z", + "contributors": [ + "Pavlechko" + ] + }, + "Glossary/Internet": { + "modified": "2019-03-23T22:08:20.008Z", + "contributors": [ + "SKaznadei", + "asmforce" + ] + }, + "Glossary/Compile": { + "modified": "2019-03-18T21:35:41.310Z", + "contributors": [ + "Abalmazik" + ] + }, + "Glossary/Cryptanalysis": { + "modified": "2019-09-10T14:27:53.120Z", + "contributors": [ + "DollarPo8" + ] + }, + "Glossary/Cryptographic_hash_function": { + "modified": "2019-09-18T10:42:51.504Z", + "contributors": [ + "DollarPo8" + ] + }, + "Glossary/Cryptography": { + "modified": "2019-09-10T13:13:46.945Z", + "contributors": [ + "DollarPo8" + ] + }, + "Glossary/Method": { + "modified": "2019-07-18T12:27:02.669Z", + "contributors": [ + "DariaManko", + "asmforce", + "Kamilius" + ] + }, + "Glossary/Wrapper": { + "modified": "2019-03-23T22:08:15.564Z", + "contributors": [ + "asmforce" + ] + }, + "Glossary/OOP": { + "modified": "2019-05-16T18:01:52.440Z", + "contributors": [ + "ArtemLashmanov", + "asmforce" + ] + }, + "Glossary/Operator": { + "modified": "2019-03-18T21:44:09.880Z", + "contributors": [ + "bdvorianov" + ] + }, + "Glossary/Hyperlink": { + "modified": "2019-03-18T21:34:47.720Z", + "contributors": [ + "SKaznadei" + ] + }, + "Glossary/Recursion": { + "modified": "2019-03-18T21:44:04.217Z", + "contributors": [ + "asmforce", + "bdvorianov" + ] + }, + "Glossary/Symbol": { + "modified": "2020-12-14T08:56:37.459Z", + "contributors": [ + "DariaManko", + "raikune" + ] + }, + "Glossary/World_Wide_Web": { + "modified": "2019-03-18T20:37:36.381Z", + "contributors": [ + "romanstor", + "SKaznadei", + "asmforce" + ] + }, + "Glossary/Type": { + "modified": "2019-03-23T22:09:27.817Z", + "contributors": [ + "asmforce" + ] + }, + "Glossary/Function": { + "modified": "2019-07-01T07:43:55.787Z", + "contributors": [ + "DariaManko", + "bdvorianov" + ] + }, + "Glossary/Cipher": { + "modified": "2019-09-10T14:28:27.783Z", + "contributors": [ + "DollarPo8" + ] + }, + "Glossary/Ciphertext": { + "modified": "2019-09-12T14:19:30.255Z", + "contributors": [ + "DollarPo8" + ] + }, + "Learn/CSS/CSS_layout": { + "modified": "2020-07-25T19:25:57.955Z", + "contributors": [ + "nepiravno" + ] + }, + "Learn/CSS/First_steps/What_is_CSS": { + "modified": "2020-10-15T22:22:31.879Z", + "contributors": [ + "SergiyLuckys" + ] + }, + "Learn/CSS/Styling_text/Styling_lists": { + "modified": "2020-07-16T22:26:15.367Z", + "contributors": [ + "MykolaCompany" + ] + }, + "Learn/Getting_started_with_the_web/The_web_and_web_standards": { + "modified": "2020-07-25T20:32:44.440Z", + "contributors": [ + "nepiravno" + ] + }, + "orphaned/Learn/How_to_contribute": { + "modified": "2020-07-16T22:33:46.744Z", + "contributors": [ + "bohdan009" + ] + }, + "Learn/Forms": { + "modified": "2020-07-25T20:03:44.978Z", + "contributors": [ + "nepiravno", + "Yurii_Horbach", + "feel13good" + ] + }, + "Learn/Forms/Your_first_form": { + "modified": "2020-07-16T22:21:07.366Z", + "contributors": [ + "pelyp47" + ] + }, + "Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML": { + "modified": "2020-07-16T22:23:25.057Z", + "contributors": [ + "ArtemLashmanov", + "websunsey" + ] + }, + "Learn/JavaScript/Asynchronous": { + "modified": "2020-07-25T19:53:57.083Z", + "contributors": [ + "nepiravno" + ] + }, + "Learn/JavaScript/Building_blocks": { + "modified": "2020-07-25T19:43:30.011Z", + "contributors": [ + "nepiravno" + ] + }, + "Learn/Tools_and_testing/GitHub": { + "modified": "2020-07-25T20:26:40.197Z", + "contributors": [ + "nepiravno" + ] + }, + "Learn/Tools_and_testing/Client-side_JavaScript_frameworks": { + "modified": "2020-07-25T20:53:33.045Z", + "contributors": [ + "nepiravno" + ] + }, + "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_getting_started": { + "modified": "2020-08-22T19:18:21.080Z", + "contributors": [ + "thedenoff" + ] + }, + "Learn/Tools_and_testing/Understanding_client-side_tools": { + "modified": "2020-07-25T20:47:10.306Z", + "contributors": [ + "nepiravno" + ] + }, + "Learn/Tools_and_testing/Cross_browser_testing": { + "modified": "2020-07-25T20:16:06.008Z", + "contributors": [ + "nepiravno" + ] + }, + "Learn/Accessibility": { + "modified": "2020-07-25T20:18:04.756Z", + "contributors": [ + "nepiravno" + ] + }, + "Learn/Learning_and_getting_help": { + "modified": "2020-07-25T20:34:14.558Z", + "contributors": [ + "nepiravno" + ] + }, + "Learn/Front-end_web_developer": { + "modified": "2020-07-26T07:04:16.114Z", + "contributors": [ + "nepiravno" + ] + }, + "orphaned/MDN/Community": { + "modified": "2019-09-11T08:00:43.055Z", + "contributors": [ + "SphinxKnight", + "wbamberg", + "asmforce", + "yuraantonov" + ] + }, + "orphaned/MDN/Contribute/Howto/Create_an_MDN_account": { + "modified": "2019-01-17T02:06:23.808Z", + "contributors": [ + "wbamberg", + "yuraantonov" + ] + }, + "orphaned/MDN/Contribute/Howto/Do_an_editorial_review": { + "modified": "2020-09-04T18:11:30.511Z", + "contributors": [ + "borysl", + "wbamberg", + "asmforce", + "kuki" + ] + }, + "orphaned/MDN/Contribute/Howto/Set_the_summary_for_a_page": { + "modified": "2019-03-23T22:05:10.058Z", + "contributors": [ + "wbamberg", + "ivaskonyan" + ] + }, + "orphaned/MDN/Contribute/Howto/Be_a_beta_tester": { + "modified": "2019-03-18T21:45:25.216Z", + "contributors": [ + "wbamberg", + "asmforce" + ] + }, + "MDN/Contribute/Howto/Create_and_edit_pages": { + "modified": "2019-08-06T16:49:19.554Z", + "contributors": [ + "html5beginner", + "wbamberg", + "asmforce" + ] + }, + "MDN/Guidelines/Writing_style_guide": { + "modified": "2020-09-30T15:32:10.012Z", + "contributors": [ + "chrisdavidmills", + "jswisher", + "Pavlechko", + "wbamberg", + "BezZaboT", + "asmforce" + ] + }, + "MDN/Yari": { + "modified": "2019-09-09T15:54:27.754Z", + "contributors": [ + "SphinxKnight", + "wbamberg", + "asmforce" + ] + }, + "MDN/Structures/Macros": { + "modified": "2020-09-30T12:57:34.918Z", + "contributors": [ + "chrisdavidmills", + "wbamberg", + "asmforce" + ] + }, + "MDN/Structures/Macros/Commonly-used_macros": { + "modified": "2020-09-30T12:57:35.379Z", + "contributors": [ + "chrisdavidmills", + "memodim.di", + "wbamberg", + "teoli", + "fscholz", + "asmforce" + ] + }, + "MDN/Tools/KumaScript/Troubleshooting": { + "modified": "2020-09-30T16:54:47.555Z", + "contributors": [ + "chrisdavidmills", + "wbamberg", + "asmforce" + ] + }, + "MDN/About": { + "modified": "2019-09-09T15:23:18.385Z", + "contributors": [ + "SphinxKnight", + "wbamberg", + "asmforce", + "OlexandrIlchenko" + ] + }, + "Mozilla/Add-ons/WebExtensions/What_are_WebExtensions": { + "modified": "2019-03-18T21:05:11.899Z", + "contributors": [ + "leofun01" + ] + }, + "Web/API/Page_Visibility_API": { + "modified": "2020-10-15T22:29:33.453Z", + "contributors": [ + "memodim.di" + ] + }, + "Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility": { + "modified": "2019-03-23T22:08:43.488Z", + "contributors": [ + "asmforce" + ] + }, + "Web/API/WindowOrWorkerGlobalScope/setTimeout": { + "modified": "2019-03-23T22:25:41.478Z", + "contributors": [ + "jurkobanzaj", + "Rozelin", + "Kamilius" + ] + }, + "Web/API/Event": { + "modified": "2020-04-15T04:26:09.031Z", + "contributors": [ + "vera-design", + "yuraantonov" + ] + }, + "Web/API/Event/target": { + "modified": "2020-08-08T10:32:59.036Z", + "contributors": [ + "Vandeko1", + "curtdp", + "yuraantonov" + ] + }, + "Web/CSS/CSS_Animations/Using_CSS_animations": { + "modified": "2019-03-23T22:07:52.924Z", + "contributors": [ + "GiorgioLviv" + ] + }, + "Web/CSS/CSS_Box_Model/Mastering_margin_collapsing": { + "modified": "2019-03-23T22:08:26.711Z", + "contributors": [ + "asmforce" + ] + }, + "Web/CSS/Alternative_style_sheets": { + "modified": "2019-03-23T22:20:16.657Z", + "contributors": [ + "asmforce" + ] + }, + "Web/CSS/Reference": { + "modified": "2019-11-24T18:02:08.214Z", + "contributors": [ + "yuraantonov" + ] + }, + "Web/CSS/CSS_Box_Model": { + "modified": "2019-03-23T22:08:28.621Z", + "contributors": [ + "asmforce", + "mfluehr" + ] + }, + "Web/CSS/Visual_formatting_model": { + "modified": "2020-04-17T11:33:03.035Z", + "contributors": [ + "ablackrain", + "olegsava", + "asmforce" + ] + }, + "Web/CSS/Layout_cookbook": { + "modified": "2020-07-25T19:29:27.695Z", + "contributors": [ + "nepiravno" + ] + }, + "Web/CSS/Layout_mode": { + "modified": "2019-03-23T22:08:35.177Z", + "contributors": [ + "asmforce" + ] + }, + "Web/API/Window/DOMContentLoaded_event": { + "modified": "2019-04-30T14:16:03.506Z", + "contributors": [ + "wbamberg", + "AndriiZ", + "fscholz", + "alekseichuk", + "AlinaKuzmenko" + ] + }, + "Web/Guide/HTML/Using_HTML_sections_and_outlines": { + "modified": "2019-03-18T20:54:41.113Z", + "contributors": [ + "litashg", + "Efimenko", + "yakubiv" + ] + }, + "Web/Guide/Graphics": { + "modified": "2019-03-23T22:38:59.184Z", + "contributors": [ + "v.h.f.u" + ] + }, + "Web/HTML/Reference": { + "modified": "2019-09-09T07:23:26.420Z", + "contributors": [ + "SphinxKnight", + "wbamberg", + "asmforce", + "v.h.f.u" + ] + }, + "Web/HTML/Element/html": { + "modified": "2019-03-23T22:36:12.142Z", + "contributors": [ + "asmforce", + "yuraantonov" + ] + }, + "Web/HTML/Element/iframe": { + "modified": "2020-11-06T03:47:28.747Z", + "contributors": [ + "SphinxKnight", + "melnykvlados" + ] + }, + "Web/HTML/Element": { + "modified": "2020-04-04T20:48:11.630Z", + "contributors": [ + "Neonas", + "yuraantonov" + ] + }, + "Web/HTML/Element/link": { + "modified": "2020-10-15T22:15:13.454Z", + "contributors": [ + "AndriyDarmits" + ] + }, + "Web/HTML/Element/nav": { + "modified": "2020-10-15T21:46:13.795Z", + "contributors": [ + "bulvvkoxide", + "asmforce", + "Kamilius" + ] + }, + "Web/HTML/Element/script": { + "modified": "2020-10-15T22:25:25.196Z", + "contributors": [ + "DANICHMOMO" + ] + }, + "Web/HTML/Element/section": { + "modified": "2019-03-23T22:21:37.735Z", + "contributors": [ + "bulvvkoxide", + "yuraantonov" + ] + }, + "Web/HTML/Element/style": { + "modified": "2019-03-23T22:20:18.231Z", + "contributors": [ + "asmforce" + ] + }, + "Web/HTML/Element/table": { + "modified": "2020-10-15T22:34:06.777Z", + "contributors": [ + "borysl" + ] + }, + "Web/HTML/Element/video": { + "modified": "2020-10-15T22:22:00.012Z", + "contributors": [ + "AndriiZ" + ] + }, + "Web/HTML/Element/header": { + "modified": "2019-03-23T22:10:15.473Z", + "contributors": [ + "yuraantonov" + ] + }, + "Web/HTML/Global_attributes/hidden": { + "modified": "2020-10-15T22:16:02.593Z", + "contributors": [ + "khomyakdi" + ] + }, + "Web/HTML/Global_attributes": { + "modified": "2019-05-03T05:34:55.602Z", + "contributors": [ + "asmforce" + ] + }, + "Web/HTML/Global_attributes/itemscope": { + "modified": "2020-02-27T17:18:48.824Z", + "contributors": [ + "pelyp47", + "AlinaKuzmenko", + "nemishkor" + ] + }, + "Web/HTML/Global_attributes/lang": { + "modified": "2020-10-15T22:17:22.681Z", + "contributors": [ + "asmforce", + "HA3IK" + ] + }, + "Web/HTML/Global_attributes/tabindex": { + "modified": "2020-10-15T22:29:23.358Z", + "contributors": [ + "memodim.di" + ] + }, + "Web/HTML/Quirks_Mode_and_Standards_Mode": { + "modified": "2019-03-18T21:46:42.475Z", + "contributors": [ + "asmforce" + ] + }, + "Web/HTTP/Headers/Accept-Encoding": { + "modified": "2020-10-15T22:13:34.607Z", + "contributors": [ + "pupenasan" + ] + }, + "Web/HTTP/Headers/Accept-Language": { + "modified": "2020-10-15T22:13:27.393Z", + "contributors": [ + "pupenasan" + ] + }, + "Web/HTTP/Headers/Connection": { + "modified": "2020-10-15T22:13:31.957Z", + "contributors": [ + "pupenasan" + ] + }, + "Web/HTTP/Headers/Content-Length": { + "modified": "2020-10-15T22:13:38.034Z", + "contributors": [ + "pupenasan" + ] + }, + "Web/HTTP/Headers/Content-Type": { + "modified": "2020-10-15T22:13:30.716Z", + "contributors": [ + "pupenasan" + ] + }, + "Web/HTTP/Headers/ETag": { + "modified": "2020-10-15T22:03:56.430Z", + "contributors": [ + "cloudgnome" + ] + }, + "Web/HTTP/Headers/If-Match": { + "modified": "2020-10-15T22:04:01.753Z", + "contributors": [ + "cloudgnome" + ] + }, + "Web/HTTP/Headers": { + "modified": "2019-07-09T04:41:30.590Z", + "contributors": [ + "WildeMax", + "savbace", + "pupenasan", + "curdwithraisins" + ] + }, + "Web/HTTP/Headers/Location": { + "modified": "2020-10-15T22:13:34.509Z", + "contributors": [ + "pupenasan" + ] + }, + "Web/HTTP/Headers/Referer": { + "modified": "2020-10-15T21:57:21.223Z", + "contributors": [ + "websunsey" + ] + }, + "Web/HTTP/Headers/User-Agent": { + "modified": "2020-10-15T22:04:15.494Z", + "contributors": [ + "Sestowner" + ] + }, + "Web/HTTP/Headers/X-Forwarded-Proto": { + "modified": "2020-10-15T22:22:50.826Z", + "contributors": [ + "nakhodkiin" + ] + }, + "Web/JavaScript/Guide/Details_of_the_Object_Model": { + "modified": "2020-03-12T19:45:23.579Z", + "contributors": [ + "AdriandeCita", + "wbamberg", + "PavloEleva" + ] + }, + "Web/JavaScript/Guide/Expressions_and_Operators": { + "modified": "2020-03-12T19:46:18.944Z", + "contributors": [ + "DariaManko", + "kwitochka", + "Onimi", + "OleksandrPelepey" + ] + }, + "Web/JavaScript/JavaScript_technologies_overview": { + "modified": "2020-03-12T19:45:24.334Z", + "contributors": [ + "PavloEleva" + ] + }, + "Web/JavaScript/Reference/Functions/rest_parameters": { + "modified": "2020-10-15T21:55:37.826Z", + "contributors": [ + "DariaManko", + "fscholz", + "trofima" + ] + }, + "Web/JavaScript/Reference/Functions/Arrow_functions": { + "modified": "2020-10-15T21:59:14.617Z", + "contributors": [ + "maisteRR", + "asmforce", + "vberestovskyi", + "krizik", + "ahavianiri" + ] + }, + "orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype": { + "modified": "2020-10-15T21:46:48.879Z", + "contributors": [ + "DariaManko", + "piton13", + "nesteant" + ] + }, + "orphaned/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype": { + "modified": "2020-10-15T22:26:05.753Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/round": { + "modified": "2020-10-15T21:54:59.380Z", + "contributors": [ + "AdriandeCita", + "yurii-kozak", + "yuraantonov" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Promise/reject": { + "modified": "2020-10-15T21:53:08.281Z", + "contributors": [ + "DariaManko", + "piton13" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/EPSILON": { + "modified": "2020-10-15T22:06:24.197Z", + "contributors": [ + "DariaManko", + "AdriandeCita" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number": { + "modified": "2020-10-15T21:55:15.973Z", + "contributors": [ + "DariaManko", + "asmforce", + "justlp", + "yuri_spivak" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/isFinite": { + "modified": "2020-10-15T22:32:15.212Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/isInteger": { + "modified": "2020-10-15T22:19:10.892Z", + "contributors": [ + "DariaManko", + "abmd" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/isNaN": { + "modified": "2020-10-15T22:32:17.922Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger": { + "modified": "2020-10-15T22:32:15.124Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER": { + "modified": "2020-10-15T22:06:24.055Z", + "contributors": [ + "DariaManko", + "AdriandeCita" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE": { + "modified": "2020-10-15T22:31:47.123Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER": { + "modified": "2020-10-15T22:31:49.130Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE": { + "modified": "2020-10-15T22:32:00.610Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/NaN": { + "modified": "2020-10-15T22:31:57.609Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY": { + "modified": "2020-10-15T22:31:57.386Z", + "contributors": [ + "DariaManko" ] }, - "Інструменти": { + "Web/JavaScript/Reference/Global_Objects/Number/Number": { + "modified": "2020-10-15T22:31:48.346Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/parseFloat": { + "modified": "2020-10-15T22:32:15.375Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/parseInt": { + "modified": "2020-10-15T22:32:20.201Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY": { + "modified": "2020-10-15T22:32:15.213Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toExponential": { + "modified": "2020-10-15T22:29:41.228Z", + "contributors": [ + "DariaManko", + "taraskundyk" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toFixed": { + "modified": "2020-10-15T22:32:23.109Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toLocaleString": { + "modified": "2020-10-15T22:32:24.740Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toPrecision": { + "modified": "2020-10-15T22:32:25.165Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toSource": { + "modified": "2020-10-15T22:32:25.603Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toString": { + "modified": "2020-10-15T22:32:26.957Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/valueOf": { + "modified": "2020-10-15T22:32:27.402Z", + "contributors": [ + "DariaManko" + ] + }, + "Web/JavaScript/Reference/Operators/Destructuring_assignment": { + "modified": "2020-03-12T19:45:50.341Z", + "contributors": [ + "savbace", + "trofima" + ] + }, + "Web/JavaScript/Reference/Operators/Object_initializer": { + "modified": "2020-10-15T21:53:09.316Z", + "contributors": [ + "DariaManko", + "trofima" + ] + }, + "Web/JavaScript/Reference/Iteration_protocols": { + "modified": "2020-03-12T19:47:16.437Z", + "contributors": [ + "DariaManko", + "asmforce" + ] + }, + "Web/JavaScript/Equality_comparisons_and_sameness": { + "modified": "2020-03-12T19:47:10.878Z", + "contributors": [ + "DariaManko", + "gshadura", + "asmforce" + ] + }, + "Web/Houdini": { + "modified": "2020-01-12T13:13:12.436Z", + "contributors": [ + "AndriyTykhan" + ] + }, + "Web/Tutorials": { + "modified": "2020-03-16T20:18:27.566Z", + "contributors": [ + "w3schoolsrus", + "html5beginner", + "MilaYoga", + "assanovstan" + ] + }, + "Tools": { "modified": "2020-07-16T22:44:19.040Z", "contributors": [ "w3schoolsrus", @@ -6228,71 +6056,243 @@ "yuraantonov" ] }, - "Інструменти/Network_Monitor": { + "Tools/Network_Monitor": { "modified": "2020-07-16T22:35:32.001Z", "contributors": [ "pupenasan" ] }, - "Інструменти/Network_Monitor/Performance_Analysis": { + "Tools/Network_Monitor/Performance_Analysis": { "modified": "2020-07-16T22:35:35.883Z", "contributors": [ "pupenasan" ] }, - "Інструменти/Network_Monitor/Throttling": { - "modified": "2020-07-16T22:35:36.549Z", + "Tools/Network_Monitor/recording": { + "modified": "2020-07-16T22:35:35.497Z", "contributors": [ "pupenasan" ] }, - "Інструменти/Network_Monitor/recording": { - "modified": "2020-07-16T22:35:35.497Z", + "Tools/Network_Monitor/request_details": { + "modified": "2020-07-16T22:35:34.973Z", "contributors": [ "pupenasan" ] }, - "Інструменти/Network_Monitor/request_details": { - "modified": "2020-07-16T22:35:34.973Z", + "Tools/Network_Monitor/request_list": { + "modified": "2020-07-16T22:35:34.227Z", "contributors": [ "pupenasan" ] }, - "Інструменти/Network_Monitor/request_list": { - "modified": "2020-07-16T22:35:34.227Z", + "Tools/Network_Monitor/Throttling": { + "modified": "2020-07-16T22:35:36.549Z", "contributors": [ "pupenasan" ] }, - "Інструменти/Network_Monitor/toolbar": { + "Tools/Network_Monitor/toolbar": { "modified": "2020-07-16T22:35:32.971Z", "contributors": [ "pupenasan" ] }, - "Інструменти/Web_Console": { + "Tools/Web_Console/Console_messages": { + "modified": "2020-07-16T22:34:16.455Z", + "contributors": [ + "pupenasan" + ] + }, + "Tools/Web_Console": { "modified": "2020-07-16T22:34:10.166Z", "contributors": [ "pupenasan", "PavloEleva" ] }, - "Інструменти/Web_Console/Console_messages": { - "modified": "2020-07-16T22:34:16.455Z", + "Tools/Web_Console/UI_Tour": { + "modified": "2020-07-16T22:34:17.758Z", "contributors": [ "pupenasan" ] }, - "Інструменти/Web_Console/Opening_the_Web_Console": { - "modified": "2020-07-16T22:34:17.758Z", + "Tools/Web_Console/Split_console": { + "modified": "2020-07-16T22:34:21.548Z", "contributors": [ "pupenasan" ] }, - "Інструменти/Web_Console/Split_console": { - "modified": "2020-07-16T22:34:21.548Z", + "conflicting/Glossary/Doctype": { + "modified": "2019-01-17T01:19:22.959Z", "contributors": [ - "pupenasan" + "asmforce" + ] + }, + "conflicting/Web/API/WindowOrWorkerGlobalScope": { + "modified": "2019-03-23T22:25:44.821Z", + "contributors": [ + "Sheppy" + ] + }, + "Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox": { + "modified": "2019-03-23T22:35:58.219Z", + "contributors": [ + "animatio" + ] + }, + "Web/API/HTMLMediaElement/abort_event": { + "modified": "2019-04-30T14:23:14.164Z", + "contributors": [ + "wbamberg", + "fscholz", + "CosmicBoris" + ] + }, + "conflicting/Learn/CSS/First_steps": { + "modified": "2019-03-23T22:37:37.659Z", + "contributors": [ + "ASeegull", + "yuraantonov" + ] + }, + "Learn/CSS/First_steps/How_CSS_works": { + "modified": "2019-03-23T22:21:20.519Z", + "contributors": [ + "ASeegull" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/Boolean": { + "modified": "2020-10-15T22:06:14.618Z", + "contributors": [ + "DariaManko", + "AdriandeCita" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/Error": { + "modified": "2020-10-15T22:18:21.094Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/EvalError": { + "modified": "2020-10-15T22:18:43.111Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/Function": { + "modified": "2020-10-15T22:21:50.690Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/GeneratorFunction": { + "modified": "2020-10-15T22:25:30.929Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/InternalError": { + "modified": "2020-10-15T22:18:47.273Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/Promise": { + "modified": "2020-10-15T21:51:58.196Z", + "contributors": [ + "piton13" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/RangeError": { + "modified": "2020-10-15T22:18:03.049Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/ReferenceError": { + "modified": "2020-10-15T22:18:46.456Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError": { + "modified": "2020-10-15T21:58:51.957Z", + "contributors": [ + "DariaManko", + "asmforce" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/TypeError": { + "modified": "2020-10-15T22:18:47.800Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/URIError": { + "modified": "2020-10-15T22:18:47.179Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/Number": { + "modified": "2020-10-15T21:56:21.125Z", + "contributors": [ + "asmforce" + ] + }, + "conflicting/Web/JavaScript/Reference/Operators": { + "modified": "2020-10-15T22:24:28.585Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Operators_7c8eb9475d97a4a734c5991857698560": { + "modified": "2020-10-15T22:24:24.851Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Operators_f71733c8e7001a29c3ec40d8522a4aca": { + "modified": "2020-10-15T22:24:49.649Z", + "contributors": [ + "DariaManko" + ] + }, + "conflicting/Web/JavaScript/Reference/Operators/Spread_syntax": { + "modified": "2020-03-12T19:45:50.602Z", + "contributors": [ + "Lancer92", + "Artem2011", + "devalf", + "trofima", + "KadirTopal" + ] + }, + "conflicting/Web/JavaScript/Reference/Operators_a8aa9ce42ce1749862961c61113d120b": { + "modified": "2020-10-15T21:57:25.055Z", + "contributors": [ + "DariaManko", + "Onimi", + "Anonymous", + "GrytsiukSerhiy", + "asmforce" + ] + }, + "conflicting/Web/JavaScript/Reference/Operators_1cd48548c16282df3883f99267726c3e": { + "modified": "2020-10-15T21:53:06.640Z", + "contributors": [ + "DariaManko", + "wbamberg", + "Onimi", + "trofima" + ] + }, + "conflicting/Web/JavaScript/Reference/Statements/switch": { + "modified": "2020-10-15T22:22:48.978Z", + "contributors": [ + "DariaManko" ] } } \ No newline at end of file diff --git a/files/uk/conflicting/glossary/doctype/index.html b/files/uk/conflicting/glossary/doctype/index.html index 2106fd19d6..156cfe51d7 100644 --- a/files/uk/conflicting/glossary/doctype/index.html +++ b/files/uk/conflicting/glossary/doctype/index.html @@ -1,10 +1,11 @@ --- title: DTD -slug: Glossary/DTD +slug: conflicting/Glossary/Doctype tags: - CodingScripting - Глосарій translation_of: Glossary/Doctype translation_of_original: Glossary/DTD +original_slug: Glossary/DTD ---

{{page("/uk/docs/Glossary/Doctype")}}

diff --git a/files/uk/conflicting/learn/css/first_steps/index.html b/files/uk/conflicting/learn/css/first_steps/index.html index cedd782ad2..8658350018 100644 --- a/files/uk/conflicting/learn/css/first_steps/index.html +++ b/files/uk/conflicting/learn/css/first_steps/index.html @@ -1,8 +1,9 @@ --- title: Getting started with CSS -slug: Web/Guide/CSS/Getting_started +slug: conflicting/Learn/CSS/First_steps translation_of: Learn/CSS/First_steps translation_of_original: Web/Guide/CSS/Getting_started +original_slug: Web/Guide/CSS/Getting_started ---

Це керівництво ознайомить Вас з основними функціями та мовою (синтаксисом) каскадних таблиць стилів (Cascading Style Sheets - CSS). Ви використовуєте CSS, щоб змінити зовнішній вигляд структурованого документу, такого як веб-сторінка. Урок також включає приклади вправ, які ви можете спробувати виконати на власному комп’ютері, щоб побачити ефекти CSS і функції, що реалізуються в сучасних браузерах.

diff --git a/files/uk/conflicting/web/api/windoworworkerglobalscope/index.html b/files/uk/conflicting/web/api/windoworworkerglobalscope/index.html index d28752bde7..bc8dcb5f8a 100644 --- a/files/uk/conflicting/web/api/windoworworkerglobalscope/index.html +++ b/files/uk/conflicting/web/api/windoworworkerglobalscope/index.html @@ -1,6 +1,6 @@ --- title: WindowTimers -slug: Web/API/WindowTimers +slug: conflicting/Web/API/WindowOrWorkerGlobalScope tags: - API - HTML DOM @@ -14,6 +14,7 @@ tags: - Workers translation_of: Web/API/WindowOrWorkerGlobalScope translation_of_original: Web/API/WindowTimers +original_slug: Web/API/WindowTimers ---
{{APIRef("HTML DOM")}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/boolean/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/boolean/index.html index dd69fe02f7..4cbc7d8fb6 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/boolean/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/boolean/index.html @@ -1,6 +1,6 @@ --- title: Boolean.prototype -slug: Web/JavaScript/Reference/Global_Objects/Boolean/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Boolean tags: - Boolean - JavaScript @@ -9,6 +9,7 @@ tags: - прототип translation_of: Web/JavaScript/Reference/Global_Objects/Boolean translation_of_original: Web/JavaScript/Reference/Global_Objects/Boolean/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Boolean/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/error/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/error/index.html index c0bcaf8739..d7c6bbabf9 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/error/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/error/index.html @@ -1,6 +1,6 @@ --- title: Error.prototype -slug: Web/JavaScript/Reference/Global_Objects/Error/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Error tags: - Error - JavaScript @@ -8,6 +8,7 @@ tags: - прототип translation_of: Web/JavaScript/Reference/Global_Objects/Error translation_of_original: Web/JavaScript/Reference/Global_Objects/Error/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Error/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/evalerror/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/evalerror/index.html index 567dad0c0b..2e030759d1 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/evalerror/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/evalerror/index.html @@ -1,6 +1,6 @@ --- title: EvalError.prototype -slug: Web/JavaScript/Reference/Global_Objects/EvalError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/EvalError tags: - Error - EvalError @@ -8,6 +8,7 @@ tags: - помилка translation_of: Web/JavaScript/Reference/Global_Objects/EvalError translation_of_original: Web/JavaScript/Reference/Global_Objects/EvalError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/EvalError/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/function/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/function/index.html index aefa5cad6b..e77a1ed5ef 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/function/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/function/index.html @@ -1,6 +1,6 @@ --- title: Function.prototype -slug: Web/JavaScript/Reference/Global_Objects/Function/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Function tags: - Function - JavaScript @@ -8,6 +8,7 @@ tags: - прототип translation_of: Web/JavaScript/Reference/Global_Objects/Function translation_of_original: Web/JavaScript/Reference/Global_Objects/Function/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Function/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html index 0c20812347..e499707efa 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html @@ -1,6 +1,6 @@ --- title: GeneratorFunction.prototype -slug: Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/GeneratorFunction tags: - ECMAScript 2015 - GeneratorFunction @@ -10,6 +10,7 @@ tags: - прототип translation_of: Web/JavaScript/Reference/Global_Objects/GeneratorFunction translation_of_original: Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/internalerror/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/internalerror/index.html index 44dc74ec1a..615851285c 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/internalerror/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/internalerror/index.html @@ -1,6 +1,6 @@ --- title: InternalError.prototype -slug: Web/JavaScript/Reference/Global_Objects/InternalError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/InternalError tags: - Error - InternalError @@ -9,6 +9,7 @@ tags: - прототип translation_of: Web/JavaScript/Reference/Global_Objects/InternalError translation_of_original: Web/JavaScript/Reference/Global_Objects/InternalError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/InternalError/prototype ---
{{JSRef}} {{non-standard_header}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/number/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/number/index.html index 3cd9d811cc..a7589f1422 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/number/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/number/index.html @@ -1,6 +1,6 @@ --- title: Number.prototype -slug: Web/JavaScript/Reference/Global_Objects/Число/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Number tags: - JavaScript - Number @@ -8,6 +8,7 @@ tags: - Prototype translation_of: Web/JavaScript/Reference/Global_Objects/Number translation_of_original: Web/JavaScript/Reference/Global_Objects/Number/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Число/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/promise/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/promise/index.html index 33bdd86562..b5affe46e1 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/promise/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/promise/index.html @@ -1,6 +1,6 @@ --- title: Promise.prototype -slug: Web/JavaScript/Reference/Global_Objects/Promise/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Promise tags: - JavaScript - Promise @@ -8,6 +8,7 @@ tags: - Проміс translation_of: Web/JavaScript/Reference/Global_Objects/Promise translation_of_original: Web/JavaScript/Reference/Global_Objects/Promise/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Promise/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/rangeerror/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/rangeerror/index.html index 8a836ddd56..a1688fe918 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/rangeerror/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/rangeerror/index.html @@ -1,6 +1,6 @@ --- title: RangeError.prototype -slug: Web/JavaScript/Reference/Global_Objects/RangeError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/RangeError tags: - Error - JavaScript @@ -8,6 +8,7 @@ tags: - прототип translation_of: Web/JavaScript/Reference/Global_Objects/RangeError translation_of_original: Web/JavaScript/Reference/Global_Objects/RangeError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/RangeError/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/referenceerror/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/referenceerror/index.html index cacfaf2719..3d1102cf05 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/referenceerror/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/referenceerror/index.html @@ -1,6 +1,6 @@ --- title: ReferenceError.prototype -slug: Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/ReferenceError tags: - Error - JavaScript @@ -9,6 +9,7 @@ tags: - прототип translation_of: Web/JavaScript/Reference/Global_Objects/ReferenceError translation_of_original: Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html index b4d42f339c..f872f5d40c 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html @@ -1,6 +1,6 @@ --- title: SyntaxError.prototype -slug: Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError tags: - Error - JavaScript @@ -9,6 +9,7 @@ tags: - помилка translation_of: Web/JavaScript/Reference/Global_Objects/SyntaxError translation_of_original: Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/typeerror/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/typeerror/index.html index 7b9c55fc37..0caac5e6fa 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/typeerror/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/typeerror/index.html @@ -1,6 +1,6 @@ --- title: TypeError.prototype -slug: Web/JavaScript/Reference/Global_Objects/TypeError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/TypeError tags: - Error - JavaScript @@ -8,6 +8,7 @@ tags: - помилка translation_of: Web/JavaScript/Reference/Global_Objects/TypeError translation_of_original: Web/JavaScript/Reference/Global_Objects/TypeError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/TypeError/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/global_objects/urierror/index.html b/files/uk/conflicting/web/javascript/reference/global_objects/urierror/index.html index d8a4144790..edc28b2064 100644 --- a/files/uk/conflicting/web/javascript/reference/global_objects/urierror/index.html +++ b/files/uk/conflicting/web/javascript/reference/global_objects/urierror/index.html @@ -1,6 +1,6 @@ --- title: URIError.prototype -slug: Web/JavaScript/Reference/Global_Objects/URIError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/URIError tags: - Error - JavaScript @@ -9,6 +9,7 @@ tags: - прототип translation_of: Web/JavaScript/Reference/Global_Objects/URIError translation_of_original: Web/JavaScript/Reference/Global_Objects/URIError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/URIError/prototype ---
{{JSRef}}
diff --git a/files/uk/conflicting/web/javascript/reference/operators/index.html b/files/uk/conflicting/web/javascript/reference/operators/index.html index 88128f5d99..5afab5c852 100644 --- a/files/uk/conflicting/web/javascript/reference/operators/index.html +++ b/files/uk/conflicting/web/javascript/reference/operators/index.html @@ -1,11 +1,12 @@ --- title: Арифметичні оператори -slug: Web/JavaScript/Reference/Operators/Arithmetic_Operators +slug: conflicting/Web/JavaScript/Reference/Operators tags: - JavaScript - Оператор translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Arithmetic_Operators +original_slug: Web/JavaScript/Reference/Operators/Arithmetic_Operators ---
{{jsSidebar("Operators")}}
diff --git a/files/uk/conflicting/web/javascript/reference/operators/spread_syntax/index.html b/files/uk/conflicting/web/javascript/reference/operators/spread_syntax/index.html index 4e635569ae..fdf9637511 100644 --- a/files/uk/conflicting/web/javascript/reference/operators/spread_syntax/index.html +++ b/files/uk/conflicting/web/javascript/reference/operators/spread_syntax/index.html @@ -1,6 +1,6 @@ --- title: Оператор розпакування -slug: Web/JavaScript/Reference/Operators/Оператор_розпакування +slug: conflicting/Web/JavaScript/Reference/Operators/Spread_syntax tags: - Iterator - JavaScript @@ -9,6 +9,7 @@ tags: - Оператор translation_of: Web/JavaScript/Reference/Operators/Spread_syntax translation_of_original: Web/JavaScript/Reference/Operators/Spread_operator +original_slug: Web/JavaScript/Reference/Operators/Оператор_розпакування ---
{{jsSidebar("Operators")}}
diff --git a/files/uk/conflicting/web/javascript/reference/operators_1cd48548c16282df3883f99267726c3e/index.html b/files/uk/conflicting/web/javascript/reference/operators_1cd48548c16282df3883f99267726c3e/index.html index 6c056272a1..0eb03eb5a1 100644 --- a/files/uk/conflicting/web/javascript/reference/operators_1cd48548c16282df3883f99267726c3e/index.html +++ b/files/uk/conflicting/web/javascript/reference/operators_1cd48548c16282df3883f99267726c3e/index.html @@ -1,11 +1,13 @@ --- title: Оператори присвоєння -slug: Web/JavaScript/Reference/Operators/Оператори_присвоєння +slug: >- + conflicting/Web/JavaScript/Reference/Operators_1cd48548c16282df3883f99267726c3e tags: - JavaScript - Оператор translation_of: Web/JavaScript/Reference/Operators#Assignment_operators translation_of_original: Web/JavaScript/Reference/Operators/Assignment_Operators +original_slug: Web/JavaScript/Reference/Operators/Оператори_присвоєння ---
{{jsSidebar("Operators")}}
diff --git a/files/uk/conflicting/web/javascript/reference/operators_7c8eb9475d97a4a734c5991857698560/index.html b/files/uk/conflicting/web/javascript/reference/operators_7c8eb9475d97a4a734c5991857698560/index.html index 3107d5aa64..a41371e7c0 100644 --- a/files/uk/conflicting/web/javascript/reference/operators_7c8eb9475d97a4a734c5991857698560/index.html +++ b/files/uk/conflicting/web/javascript/reference/operators_7c8eb9475d97a4a734c5991857698560/index.html @@ -1,12 +1,14 @@ --- title: Бітові оператори -slug: Web/JavaScript/Reference/Operators/Bitwise_Operators +slug: >- + conflicting/Web/JavaScript/Reference/Operators_7c8eb9475d97a4a734c5991857698560 tags: - JavaScript - Довідка - Оператор translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Bitwise_Operators +original_slug: Web/JavaScript/Reference/Operators/Bitwise_Operators ---
{{jsSidebar("Operators")}}
diff --git a/files/uk/conflicting/web/javascript/reference/operators_a8aa9ce42ce1749862961c61113d120b/index.html b/files/uk/conflicting/web/javascript/reference/operators_a8aa9ce42ce1749862961c61113d120b/index.html index 9285c5dd5a..1313c5b9c6 100644 --- a/files/uk/conflicting/web/javascript/reference/operators_a8aa9ce42ce1749862961c61113d120b/index.html +++ b/files/uk/conflicting/web/javascript/reference/operators_a8aa9ce42ce1749862961c61113d120b/index.html @@ -1,12 +1,14 @@ --- title: Оператори порівняння -slug: Web/JavaScript/Reference/Operators/Оператори_порівняння +slug: >- + conflicting/Web/JavaScript/Reference/Operators_a8aa9ce42ce1749862961c61113d120b tags: - JavaScript - Довідка - Оператор translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Comparison_Operators +original_slug: Web/JavaScript/Reference/Operators/Оператори_порівняння ---
{{jsSidebar("Operators")}}
diff --git a/files/uk/conflicting/web/javascript/reference/operators_f71733c8e7001a29c3ec40d8522a4aca/index.html b/files/uk/conflicting/web/javascript/reference/operators_f71733c8e7001a29c3ec40d8522a4aca/index.html index ea1edb506a..c2ae524fa3 100644 --- a/files/uk/conflicting/web/javascript/reference/operators_f71733c8e7001a29c3ec40d8522a4aca/index.html +++ b/files/uk/conflicting/web/javascript/reference/operators_f71733c8e7001a29c3ec40d8522a4aca/index.html @@ -1,12 +1,14 @@ --- title: Логічні оператори -slug: Web/JavaScript/Reference/Operators/Logical_Operators +slug: >- + conflicting/Web/JavaScript/Reference/Operators_f71733c8e7001a29c3ec40d8522a4aca tags: - JavaScript - Оператор - логічний translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Logical_Operators +original_slug: Web/JavaScript/Reference/Operators/Logical_Operators ---
{{jsSidebar("Operators")}}
diff --git a/files/uk/conflicting/web/javascript/reference/statements/switch/index.html b/files/uk/conflicting/web/javascript/reference/statements/switch/index.html index c766150f22..d85d7dedc7 100644 --- a/files/uk/conflicting/web/javascript/reference/statements/switch/index.html +++ b/files/uk/conflicting/web/javascript/reference/statements/switch/index.html @@ -1,8 +1,9 @@ --- title: default -slug: Web/JavaScript/Reference/Statements/default +slug: conflicting/Web/JavaScript/Reference/Statements/switch translation_of: Web/JavaScript/Reference/Statements/switch translation_of_original: Web/JavaScript/Reference/Statements/default +original_slug: Web/JavaScript/Reference/Statements/default ---
{{jsSidebar("Statements")}}
diff --git a/files/uk/glossary/abstraction/index.html b/files/uk/glossary/abstraction/index.html index 49517c4907..22f96d1eb5 100644 --- a/files/uk/glossary/abstraction/index.html +++ b/files/uk/glossary/abstraction/index.html @@ -1,11 +1,12 @@ --- title: Абстракція -slug: Glossary/Абстракція +slug: Glossary/Abstraction tags: - Абстракція - Мова Програмування - Словник translation_of: Glossary/Abstraction +original_slug: Glossary/Абстракція ---

Абстрація у галузі {{Glossary("computer programming", "комп'ютерного програмування")}} є способом зменшення складності, що вможливлює підвищення ефективності розробки та втілення складних систем програмного забезпечення. Вона ховає технічну складність системи за простішими {{Glossary("API", "програмними інтерфейсами")}}.

diff --git a/files/uk/glossary/accessibility/index.html b/files/uk/glossary/accessibility/index.html index cbc90fead2..e48d539657 100644 --- a/files/uk/glossary/accessibility/index.html +++ b/files/uk/glossary/accessibility/index.html @@ -1,10 +1,11 @@ --- title: Веб-доступність (Web Accessibility) -slug: Glossary/Веб_Доступність +slug: Glossary/Accessibility tags: - Доступність - Словник translation_of: Glossary/Accessibility +original_slug: Glossary/Веб_Доступність ---

Веб-доступність, або Доступність веб-сайтів (Web Accesability, A11Y), відноситься до передового досвіду для використання веб-сайту, незважаючи на фізичні та технічні обмеження. Веб-доступність формально визначається й обговорюється на {{Glossary("W3C")}} з {{Glossary("WAI","Web Accessibility Initiative","Ініціатива веб-доступності")}} (WAI).

diff --git a/files/uk/glossary/algorithm/index.html b/files/uk/glossary/algorithm/index.html index 6908966658..84691c54bc 100644 --- a/files/uk/glossary/algorithm/index.html +++ b/files/uk/glossary/algorithm/index.html @@ -1,9 +1,10 @@ --- title: Алгоритм -slug: Glossary/Алгоритм +slug: Glossary/Algorithm tags: - Словник translation_of: Glossary/Algorithm +original_slug: Glossary/Алгоритм ---

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

diff --git a/files/uk/glossary/argument/index.html b/files/uk/glossary/argument/index.html index 1192ea1b6e..f68d539ca1 100644 --- a/files/uk/glossary/argument/index.html +++ b/files/uk/glossary/argument/index.html @@ -1,10 +1,11 @@ --- title: Арґумент -slug: Glossary/Арґумент +slug: Glossary/Argument tags: - JavaScript - Словник translation_of: Glossary/Argument +original_slug: Glossary/Арґумент ---

Арґумент — це своєрідний тип {{Glossary("Variable", "змінної")}}, що дозволяє передавати до {{Glossary("Function", "функції")}} ({{Glossary("Method", "метода")}}) необхідні {{Glossary("value", "значення")}}, {{Glossary("Scope", "область видимості")}} яких не виходитиме за її (функції) межі.

diff --git a/files/uk/glossary/block/scripting/index.html b/files/uk/glossary/block/scripting/index.html index 1a2a923252..6807665f73 100644 --- a/files/uk/glossary/block/scripting/index.html +++ b/files/uk/glossary/block/scripting/index.html @@ -1,12 +1,13 @@ --- title: Блок (Скриптинг) -slug: Glossary/Block/Скриптинг +slug: Glossary/Block/Scripting tags: - CodingScripting - JavaScript - Глосарій - Словник translation_of: Glossary/Block/Scripting +original_slug: Glossary/Block/Скриптинг ---

В {{glossary("JavaScript")}}, блок - це сукупність пов'язаних {{glossary("statement","інструкцій")}} що вкладені в фігурні дужки ("{}"). Наприклад, Ви можете помістити блок інструкцій після блоку  {{jsxref("Statements/if...else","if (condition)")}}, щоб інтепритатор виконав код в середині блоку, якщо умова правдива (true), або пропустив цілий клок, якщо умова хибна (false).

diff --git a/files/uk/glossary/buffer/index.html b/files/uk/glossary/buffer/index.html index cba52b5844..bb0c4d5613 100644 --- a/files/uk/glossary/buffer/index.html +++ b/files/uk/glossary/buffer/index.html @@ -1,11 +1,12 @@ --- title: Буфер -slug: Glossary/Буфер +slug: Glossary/buffer tags: - Буфер - Кеш - Словник translation_of: Glossary/buffer +original_slug: Glossary/Буфер ---

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

diff --git a/files/uk/glossary/cipher/index.html b/files/uk/glossary/cipher/index.html index b86fe31272..99e0930a41 100644 --- a/files/uk/glossary/cipher/index.html +++ b/files/uk/glossary/cipher/index.html @@ -1,12 +1,13 @@ --- title: Шифр -slug: Glossary/Шифр +slug: Glossary/Cipher tags: - Безпека - Криптографія - Приватність - Словник translation_of: Glossary/Cipher +original_slug: Glossary/Шифр ---

В {{glossary("Криптографія","криптографії")}}, шифр це алгоритм, що спроможний {{glossary("encryption", "шифрувати")}} {{glossary("cleartext","відкритий текст")}} і зробити його нечитабельним, та {{glossary("decryption", "дешифрувати")}} його назад.

diff --git a/files/uk/glossary/ciphertext/index.html b/files/uk/glossary/ciphertext/index.html index 8e2561d57c..af4ed1afac 100644 --- a/files/uk/glossary/ciphertext/index.html +++ b/files/uk/glossary/ciphertext/index.html @@ -1,12 +1,13 @@ --- title: Шифротекст -slug: Glossary/Шифротекст +slug: Glossary/Ciphertext tags: - Безпека - Криптографія - Приватність - Словник translation_of: Glossary/Ciphertext +original_slug: Glossary/Шифротекст ---

В {{glossary("Криптографія","криптографії")}}, шифротекст це зашифроване повідомлення, що передає інформацію, але воно є нерозбірливим до процесу {{glossary("decryption","дешифрування")}} правильно підібраним {{glossary("Шифр","шифром")}} і правильним секретом (зазвичай це {{glossary("key","ключ")}}), що дасть змогу відтворити оригінальний {{glossary("cleartext","відкритий текст")}}. Рівень захищеності шифротексту і секретність вміщеної інформації залежать від використання безпечного шифру та зберігання ключа в таємниці.

diff --git a/files/uk/glossary/closure/index.html b/files/uk/glossary/closure/index.html index 78ec73f7f8..193254d230 100644 --- a/files/uk/glossary/closure/index.html +++ b/files/uk/glossary/closure/index.html @@ -1,10 +1,11 @@ --- title: Замикання -slug: Glossary/Замикання +slug: Glossary/Closure tags: - JavaScript - Словник translation_of: Glossary/Closure +original_slug: Glossary/Замикання ---

Замикання (англ. closure) — це певний різновид сполучення між {{glossary("scope", "областями видимості")}}, що уможливлює доступ до місцевих (локальних) змінних зовнішнього середовища виконання з новоствореного внутрішнього середовища. У {{glossary("JavaScript")}} всяка {{glossary("function", "функція")}} створює замикання.

diff --git a/files/uk/glossary/compile/index.html b/files/uk/glossary/compile/index.html index 18cb2744e3..1e89dfece6 100644 --- a/files/uk/glossary/compile/index.html +++ b/files/uk/glossary/compile/index.html @@ -1,7 +1,8 @@ --- title: Компіляція -slug: Glossary/Компіляція +slug: Glossary/Compile translation_of: Glossary/Compile +original_slug: Glossary/Компіляція ---

Компіляція це процес перетворення комп'ютерної програми, написаної на {{Glossary("computer programming", "мові программування")}} у відповідний код на іншій мові програмування. Компілятор - це програмне забеспечення яке виконує це перетворення. Інколи цей процес називають "збирання" або "побудова", що як правило, означає бульше, ніж просто виконання компіляції, наприклад упакування його у двійковому форматі. 

diff --git a/files/uk/glossary/cryptanalysis/index.html b/files/uk/glossary/cryptanalysis/index.html index ed115fb471..4d0d870547 100644 --- a/files/uk/glossary/cryptanalysis/index.html +++ b/files/uk/glossary/cryptanalysis/index.html @@ -1,12 +1,13 @@ --- title: Криптоаналіз -slug: Glossary/Криптоаналіз +slug: Glossary/Cryptanalysis tags: - Безпека - Криптографія - Приватність - Словник translation_of: Glossary/Cryptanalysis +original_slug: Glossary/Криптоаналіз ---

Криптоаналіз це галузь {{glossary("криптографія","криптографії")}}, що вивчає шляхи взлому кодів та криптосистем. Криптоаналіз створює техніки взлому {{glossary("cipher","шифру")}}, зокрема більш ефективними методами ніж метод "грубої сили". На додачу до традиціїних методів, як частотний аналіз та індекс збігів, криптоаналіз включає більш нові методи, такі як лінійний криптаналіз або диференціальний криптоаналіз, що можуть взламати прогресивніші шифри.

diff --git a/files/uk/glossary/cryptographic_hash_function/index.html b/files/uk/glossary/cryptographic_hash_function/index.html index acba67d875..6a6a3fa03d 100644 --- a/files/uk/glossary/cryptographic_hash_function/index.html +++ b/files/uk/glossary/cryptographic_hash_function/index.html @@ -1,11 +1,12 @@ --- title: Криптографічна геш-функція -slug: Glossary/Криптографічна_геш-функція +slug: Glossary/Cryptographic_hash_function tags: - Безпека - Криптографія - Словник translation_of: Glossary/Cryptographic_hash_function +original_slug: Glossary/Криптографічна_геш-функція ---

Криптографічна геш-функція, яка також іноді називається дайджест-функція, це одна з {{glossary("криптографія", "криптографічних")}} основ, на меті якої трансформація повідомлення довільного розміру в повідомлення фіксованого розміру, що називається {{glossary("digest","дайджест")}}. Криптографічні геш-функції використовуються для автентифікації, {{Glossary("digital signature", "цифрових підписів")}} та {{Glossary("HMAC", "кодів автентифікації повідомлень (МАС-підписів)")}}.

diff --git a/files/uk/glossary/cryptography/index.html b/files/uk/glossary/cryptography/index.html index 8d0ccaec9e..7438b3d208 100644 --- a/files/uk/glossary/cryptography/index.html +++ b/files/uk/glossary/cryptography/index.html @@ -1,12 +1,13 @@ --- title: Криптографія -slug: Glossary/Криптографія +slug: Glossary/Cryptography tags: - Безпека - Криптографія - Приватність - Словник translation_of: Glossary/Cryptography +original_slug: Glossary/Криптографія ---

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

diff --git a/files/uk/glossary/decryption/index.html b/files/uk/glossary/decryption/index.html index 20cce95d6e..d82125a846 100644 --- a/files/uk/glossary/decryption/index.html +++ b/files/uk/glossary/decryption/index.html @@ -1,12 +1,13 @@ --- title: Дешифрування -slug: Glossary/Дешифрування +slug: Glossary/Decryption tags: - Безпека - Криптографія - Приватність - Словник translation_of: Glossary/Decryption +original_slug: Glossary/Дешифрування ---

В {{glossary("Криптографія","криптографії")}}, дешифрування це трансформація {{glossary("Шифротекст","шифротексту")}} в {{glossary("cleartext","відкритий текст")}}.

diff --git a/files/uk/glossary/dynamic_programming_language/index.html b/files/uk/glossary/dynamic_programming_language/index.html index 0417968273..f93ccfccae 100644 --- a/files/uk/glossary/dynamic_programming_language/index.html +++ b/files/uk/glossary/dynamic_programming_language/index.html @@ -1,11 +1,12 @@ --- title: Динамічна мова програмування -slug: Glossary/Динамічна_мова_програмування +slug: Glossary/Dynamic_programming_language tags: - ДМП - Динамічна мова програмування - Словник translation_of: Glossary/Dynamic_programming_language +original_slug: Glossary/Динамічна_мова_програмування ---

 

diff --git a/files/uk/glossary/function/index.html b/files/uk/glossary/function/index.html index b686ccc40c..15f2ddcbf2 100644 --- a/files/uk/glossary/function/index.html +++ b/files/uk/glossary/function/index.html @@ -1,12 +1,13 @@ --- title: Функція -slug: Glossary/Функція +slug: Glossary/Function tags: - IIFE - JavaScript - Словник - Функція translation_of: Glossary/Function +original_slug: Glossary/Функція ---

Функція - це фрагмент коду, що може бути викликаний іншим кодом чи сам собою, або {{Glossary("змінна")}} що відноситься до функцій. Коли функцію викликано, {{Glossary("арґументи")}} функція отримує як ввід, та може повертати вивід. Функції у {{glossary("JavaScript")}} це також {{glossary("Object","об'єкти")}}.

diff --git a/files/uk/glossary/hyperlink/index.html b/files/uk/glossary/hyperlink/index.html index 2aabe6f66d..868551e6a8 100644 --- a/files/uk/glossary/hyperlink/index.html +++ b/files/uk/glossary/hyperlink/index.html @@ -1,7 +1,8 @@ --- title: Гіперпосилання -slug: Glossary/Посилання +slug: Glossary/Hyperlink translation_of: Glossary/Hyperlink +original_slug: Glossary/Посилання ---

Гіперпосилання підключають веб-сторінки чи елементи даних один до одного. HTML елементи {{HTMLElement ("a")}} визначають гіперпосилання з місця на веб-сторінці (як-от текстовий рядок або зображення) на місце на іншій або на тій же сторінці.

diff --git a/files/uk/glossary/identifier/index.html b/files/uk/glossary/identifier/index.html index 5499efcc77..c673ce87e6 100644 --- a/files/uk/glossary/identifier/index.html +++ b/files/uk/glossary/identifier/index.html @@ -1,10 +1,11 @@ --- title: Ідентифікатор -slug: Glossary/ідентифікатор +slug: Glossary/Identifier tags: - Початківець - Словник translation_of: Glossary/Identifier +original_slug: Glossary/ідентифікатор ---

Послідовність символів в коді, яка у недвозначний спосіб позначає (ідентифікує) {{glossary("variable", "змінну")}}, {{glossary("function", "функцію")}} або {{glossary("property", "властивість")}}, називається ідентифікатором.

diff --git a/files/uk/glossary/internet/index.html b/files/uk/glossary/internet/index.html index 6c4f91efff..fa2f4a921f 100644 --- a/files/uk/glossary/internet/index.html +++ b/files/uk/glossary/internet/index.html @@ -1,12 +1,13 @@ --- title: Інтернет -slug: Glossary/Інтернет +slug: Glossary/Internet tags: - NeedsContent - WWW - Початківець - Словник translation_of: Glossary/Internet +original_slug: Glossary/Інтернет ---

Інтернет (також міжмере́жжя) — всесвітня мережа з мереж, яка використовує стіс {{glossary("protocol", "протоколів")}} {{glossary("TCP")}}/{{glossary("IPv6", "IP")}}.

diff --git a/files/uk/glossary/method/index.html b/files/uk/glossary/method/index.html index 1a2b3f8e99..976f480f8f 100644 --- a/files/uk/glossary/method/index.html +++ b/files/uk/glossary/method/index.html @@ -1,11 +1,12 @@ --- title: Метод -slug: Glossary/Метод +slug: Glossary/Method tags: - JavaScript - Словник - Функція translation_of: Glossary/Method +original_slug: Glossary/Метод ---

Метод — це {{glossary("function", "функція")}}, яка є {{glossary("property", "властивістю")}} {{glossary("object", "об'єкта")}}. Існує два види методів: Примірниковий метод, який можна викликати лише за наявності об'єкта, або {{Glossary("static method", "Статичний метод")}}, який можна викликати безпосередньо на конструкторі об'єкта.

diff --git a/files/uk/glossary/oop/index.html b/files/uk/glossary/oop/index.html index 6dfa1a3a8c..c6e1e6a182 100644 --- a/files/uk/glossary/oop/index.html +++ b/files/uk/glossary/oop/index.html @@ -1,11 +1,12 @@ --- title: OOP (Об'єктно-орієнтоване програмування) -slug: Glossary/ООП +slug: Glossary/OOP tags: - Об'єкт - Парадигма - Програмування translation_of: Glossary/OOP +original_slug: Glossary/ООП ---

OOP (об'єктно-орієнтоване програмування) є підходом у програмуванні, який передбачає, що дані сховано всередині об'єктів, а операції здійснюються радше над {{glossary("object", "об'єктами")}}, ніж над їх складовими.

diff --git a/files/uk/glossary/operator/index.html b/files/uk/glossary/operator/index.html index 9a55273f32..3b592f879c 100644 --- a/files/uk/glossary/operator/index.html +++ b/files/uk/glossary/operator/index.html @@ -1,10 +1,11 @@ --- title: Оператор -slug: Glossary/Оператор +slug: Glossary/Operator tags: - Оператори - Словник translation_of: Glossary/Operator +original_slug: Glossary/Оператор ---

Зарезервований вираз, що позначається знаком пунктуації чи буквенно-цифровим символом, що забезпечує вбудований функціонал, що може варіюватись в залежності від мови. Наприклад, в JavaScript оператор додавання ("+") може додавати числа та, крім цього, виконувати конкатинацію(злиття) рядків; оператор "not" (позн. "!") надає виразу протилежного значення, наприклад, вираз зі значенням true повертатиме false.

diff --git a/files/uk/glossary/recursion/index.html b/files/uk/glossary/recursion/index.html index b69251d64b..7474a56209 100644 --- a/files/uk/glossary/recursion/index.html +++ b/files/uk/glossary/recursion/index.html @@ -1,9 +1,10 @@ --- title: Рекурсія -slug: Glossary/Рекурсія +slug: Glossary/Recursion tags: - Словник translation_of: Glossary/Recursion +original_slug: Glossary/Рекурсія ---

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

diff --git a/files/uk/glossary/statement/index.html b/files/uk/glossary/statement/index.html index 6364c4093e..83801fd6b3 100644 --- a/files/uk/glossary/statement/index.html +++ b/files/uk/glossary/statement/index.html @@ -1,11 +1,12 @@ --- title: Інструкція -slug: Glossary/Інструкція +slug: Glossary/Statement tags: - Beginner - CodingScripting - Глосарій translation_of: Glossary/Statement +original_slug: Glossary/Інструкція ---

В комп'ютерній мові програмування інструкція - це рядок коду, який виконує завдання. Кожна програма складається з послідовності інструкцій.

diff --git a/files/uk/glossary/symbol/index.html b/files/uk/glossary/symbol/index.html index 5b0a3767a1..da8ea9c366 100644 --- a/files/uk/glossary/symbol/index.html +++ b/files/uk/glossary/symbol/index.html @@ -1,6 +1,6 @@ --- title: Символ -slug: Glossary/Символ +slug: Glossary/Symbol tags: - ECMAScript2015 - JavaScript @@ -9,6 +9,7 @@ tags: - Словник - Тип даних translation_of: Glossary/Symbol +original_slug: Glossary/Символ ---

У {{Glossary("JavaScript")}}, символ (Symbol) є {{Glossary("Primitive", "простим типом даних")}}.

diff --git a/files/uk/glossary/type/index.html b/files/uk/glossary/type/index.html index a426877aa6..0d9fde0060 100644 --- a/files/uk/glossary/type/index.html +++ b/files/uk/glossary/type/index.html @@ -1,6 +1,6 @@ --- title: Тип -slug: Glossary/Тип +slug: Glossary/Type tags: - JavaScript - Змінна @@ -8,6 +8,7 @@ tags: - Словник - Тип translation_of: Glossary/Type +original_slug: Glossary/Тип ---

Тип (або тип даних) є характеристикою {{glossary("value", "значення")}}, що визначає формат його зберігання та способи обробки. Скажімо, ціле число можна помножити на дробове, але не на текстовий рядок.

diff --git a/files/uk/glossary/ux/index.html b/files/uk/glossary/ux/index.html index eec0cb229d..395f32a69a 100644 --- a/files/uk/glossary/ux/index.html +++ b/files/uk/glossary/ux/index.html @@ -1,12 +1,13 @@ --- title: ДК -slug: Glossary/ДК +slug: Glossary/UX tags: - Дизайн - Доступність - Навігація - Словник translation_of: Glossary/UX +original_slug: Glossary/ДК ---

ДК — це акронім від слів досвід користування. Це дослідження взаємодії користувачів і системи. Його мета - зробити систему легкою в взаємодії з точки зору користувача.

diff --git a/files/uk/glossary/value/index.html b/files/uk/glossary/value/index.html index f9b6d2f9dd..36c4f46d87 100644 --- a/files/uk/glossary/value/index.html +++ b/files/uk/glossary/value/index.html @@ -1,12 +1,13 @@ --- title: Значення -slug: Glossary/Значення +slug: Glossary/Value tags: - Значення - Посилання - Проста величина - Словник translation_of: Glossary/Value +original_slug: Glossary/Значення ---

Кажучи про дані або {{Glossary("Wrapper", "обгортку")}} для тих даних, значення являє собою {{Glossary("Primitive","просту величину")}}, яка міститься в об'єкті-обгортці. Натомість, кажучи про {{Glossary("Variable","змінну")}} чи {{Glossary("Property","властивість")}}, значенням можуть називати як просту величину, так і {{Glossary("Object reference","посилання на об'єкт")}}.

diff --git a/files/uk/glossary/variable/index.html b/files/uk/glossary/variable/index.html index 2c23a36c56..6fe5d7721c 100644 --- a/files/uk/glossary/variable/index.html +++ b/files/uk/glossary/variable/index.html @@ -1,10 +1,11 @@ --- title: Змінна -slug: Glossary/Змінна +slug: Glossary/Variable tags: - JavaScript - Програмування translation_of: Glossary/Variable +original_slug: Glossary/Змінна ---

Змінна — це {{glossary("Identifier", "найменована")}} ділянка пам'яті, де зберігається {{Glossary("Value", "значення")}}. Таким чином заздалегідь відоме ім'я уможливлює доступ до значення, яке може бути довільним на момент доступу.

diff --git a/files/uk/glossary/viewport/index.html b/files/uk/glossary/viewport/index.html index 2136266e89..224cd9a6dd 100644 --- a/files/uk/glossary/viewport/index.html +++ b/files/uk/glossary/viewport/index.html @@ -1,10 +1,11 @@ --- title: Вікно перегляду -slug: Glossary/Вікно_перегляду +slug: Glossary/Viewport tags: - Графіка - Словник translation_of: Glossary/Viewport +original_slug: Glossary/Вікно_перегляду ---

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

diff --git a/files/uk/glossary/world_wide_web/index.html b/files/uk/glossary/world_wide_web/index.html index 98cde6874d..4bbdfb2ed2 100644 --- a/files/uk/glossary/world_wide_web/index.html +++ b/files/uk/glossary/world_wide_web/index.html @@ -1,11 +1,12 @@ --- title: Всесвітня мережа -slug: Glossary/Тенета +slug: Glossary/World_Wide_Web tags: - WWW - Інфраструктура - Словник translation_of: Glossary/World_Wide_Web +original_slug: Glossary/Тенета ---

Всесві́тня мережа (англ. World Wide Web, скорочено: WWW, W3 чи просто Web), павутиннятене́та, або веб — це всесвітня система відкритих документів і сторінок, доступних в мережі {{Glossary("Internet", "Інтернет")}}. Мережа — це не те саме, що й Інтернет: Мережа є лише одним із численних застосувань Інтернету та використовує останній як середовище передачі даних.

diff --git a/files/uk/glossary/wrapper/index.html b/files/uk/glossary/wrapper/index.html index 535edbec4f..c256511fae 100644 --- a/files/uk/glossary/wrapper/index.html +++ b/files/uk/glossary/wrapper/index.html @@ -1,10 +1,11 @@ --- title: Wrapper -slug: Glossary/Обгортка +slug: Glossary/Wrapper tags: - Обгортка - Словник translation_of: Glossary/Wrapper +original_slug: Glossary/Обгортка ---

У таких мовах програмування, як JavaScript, розрізняють два значення поняття обгортка: це або {{glossary("Function", "функція")}}, призначена викликати одну або кілька інших функцій (лише для зручності або задля пристосування їх до використання з дещо іншою метою, ніж передбачалося раніше), або {{glossary("Object", "об'єкт")}} (та {{glossary("Class", "клас")}}, до якого він належить), який містить (огортає) {{glossary("Primitive", "просту величину")}} та надає відповідні {{glossary("Method", "методи")}} для здійснення операцій над нею.

diff --git a/files/uk/learn/accessibility/index.html b/files/uk/learn/accessibility/index.html index 465926f459..52cd8996f0 100644 --- a/files/uk/learn/accessibility/index.html +++ b/files/uk/learn/accessibility/index.html @@ -1,7 +1,8 @@ --- title: Доступність -slug: Learn/Доступність +slug: Learn/Accessibility translation_of: Learn/Accessibility +original_slug: Learn/Доступність ---
{{LearnSidebar}}
diff --git a/files/uk/learn/css/css_layout/index.html b/files/uk/learn/css/css_layout/index.html index 14ce8f9c63..a769852c74 100644 --- a/files/uk/learn/css/css_layout/index.html +++ b/files/uk/learn/css/css_layout/index.html @@ -1,7 +1,8 @@ --- title: CSS розмітка -slug: Learn/CSS/CSS_розмітка +slug: Learn/CSS/CSS_layout translation_of: Learn/CSS/CSS_layout +original_slug: Learn/CSS/CSS_розмітка ---
{{LearnSidebar}}
diff --git a/files/uk/learn/css/first_steps/how_css_works/index.html b/files/uk/learn/css/first_steps/how_css_works/index.html index f1ee8b66b1..7a21625871 100644 --- a/files/uk/learn/css/first_steps/how_css_works/index.html +++ b/files/uk/learn/css/first_steps/how_css_works/index.html @@ -1,8 +1,9 @@ --- title: What is CSS? -slug: Web/Guide/CSS/Getting_started/What_is_CSS +slug: Learn/CSS/First_steps/How_CSS_works translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Web/Guide/CSS/Getting_started/What_is_CSS +original_slug: Web/Guide/CSS/Getting_started/What_is_CSS ---
{{CSSTutorialTOC}}
diff --git a/files/uk/learn/css/first_steps/what_is_css/index.html b/files/uk/learn/css/first_steps/what_is_css/index.html index a1ee6d30ea..18a74a4f44 100644 --- a/files/uk/learn/css/first_steps/what_is_css/index.html +++ b/files/uk/learn/css/first_steps/what_is_css/index.html @@ -1,6 +1,6 @@ --- title: Що таке CSS? -slug: Learn/CSS/First_steps/Що_таке_CSS +slug: Learn/CSS/First_steps/What_is_CSS tags: - CSS - Вступ до CSS @@ -10,6 +10,7 @@ tags: - Специфікація - новачок translation_of: Learn/CSS/First_steps/What_is_CSS +original_slug: Learn/CSS/First_steps/Що_таке_CSS ---
{{LearnSidebar}}
diff --git a/files/uk/learn/css/styling_text/styling_lists/index.html b/files/uk/learn/css/styling_text/styling_lists/index.html index da8f62ab84..225418f69b 100644 --- a/files/uk/learn/css/styling_text/styling_lists/index.html +++ b/files/uk/learn/css/styling_text/styling_lists/index.html @@ -1,6 +1,6 @@ --- title: Стилі списків -slug: Learn/CSS/Styling_text/Стилі_списків +slug: Learn/CSS/Styling_text/Styling_lists tags: - CSS - Початківець @@ -9,6 +9,7 @@ tags: - Стилі - Текст translation_of: Learn/CSS/Styling_text/Styling_lists +original_slug: Learn/CSS/Styling_text/Стилі_списків ---
{{LearnSidebar}}
diff --git a/files/uk/learn/forms/index.html b/files/uk/learn/forms/index.html index be1e8bd595..9525484787 100644 --- a/files/uk/learn/forms/index.html +++ b/files/uk/learn/forms/index.html @@ -1,7 +1,8 @@ --- title: Веб-форми -slug: Learn/HTML/Forms +slug: Learn/Forms translation_of: Learn/Forms +original_slug: Learn/HTML/Forms ---
{{LearnSidebar}}
diff --git a/files/uk/learn/forms/your_first_form/index.html b/files/uk/learn/forms/your_first_form/index.html index e34ac6a346..e5be790eff 100644 --- a/files/uk/learn/forms/your_first_form/index.html +++ b/files/uk/learn/forms/your_first_form/index.html @@ -1,7 +1,8 @@ --- title: Your first form -slug: Learn/HTML/Forms/Your_first_form +slug: Learn/Forms/Your_first_form translation_of: Learn/Forms/Your_first_form +original_slug: Learn/HTML/Forms/Your_first_form ---
{{LearnSidebar}}{{NextMenu("Learn/Forms/How_to_structure_a_web_form", "Learn/Forms")}}
diff --git a/files/uk/learn/front-end_web_developer/index.html b/files/uk/learn/front-end_web_developer/index.html index c90cae476e..599f33b249 100644 --- a/files/uk/learn/front-end_web_developer/index.html +++ b/files/uk/learn/front-end_web_developer/index.html @@ -1,6 +1,6 @@ --- title: Фронтенд веб-розробник -slug: Learn/Фронт-енд_веб-розробник +slug: Learn/Front-end_web_developer tags: - CSS - Front-end @@ -15,6 +15,7 @@ tags: - Фронтенд - інструменти translation_of: Learn/Front-end_web_developer +original_slug: Learn/Фронт-енд_веб-розробник ---

{{learnsidebar}}

diff --git a/files/uk/learn/getting_started_with_the_web/the_web_and_web_standards/index.html b/files/uk/learn/getting_started_with_the_web/the_web_and_web_standards/index.html index c25cffdea8..9f2b50ed36 100644 --- a/files/uk/learn/getting_started_with_the_web/the_web_and_web_standards/index.html +++ b/files/uk/learn/getting_started_with_the_web/the_web_and_web_standards/index.html @@ -1,7 +1,8 @@ --- title: Інтернет та веб-стандарти -slug: Learn/Getting_started_with_the_web/Інтернет_та_веб-стандарти +slug: Learn/Getting_started_with_the_web/The_web_and_web_standards translation_of: Learn/Getting_started_with_the_web/The_web_and_web_standards +original_slug: Learn/Getting_started_with_the_web/Інтернет_та_веб-стандарти ---

{{learnsidebar}}

diff --git a/files/uk/learn/html/introduction_to_html/the_head_metadata_in_html/index.html b/files/uk/learn/html/introduction_to_html/the_head_metadata_in_html/index.html index 63ac7a8cfa..e7d1c1658a 100644 --- a/files/uk/learn/html/introduction_to_html/the_head_metadata_in_html/index.html +++ b/files/uk/learn/html/introduction_to_html/the_head_metadata_in_html/index.html @@ -1,6 +1,6 @@ --- title: Що в head? Метадані в HTML -slug: Learn/HTML/Introduction_to_HTML/scho_v_head_metadani_v_HTML +slug: Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML tags: - CSS - HTML @@ -15,6 +15,7 @@ tags: - значки - мета translation_of: Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML +original_slug: Learn/HTML/Introduction_to_HTML/scho_v_head_metadani_v_HTML ---
{{LearnSidebar}}
diff --git a/files/uk/learn/javascript/asynchronous/index.html b/files/uk/learn/javascript/asynchronous/index.html index 3167a1f55a..c04f970dfa 100644 --- a/files/uk/learn/javascript/asynchronous/index.html +++ b/files/uk/learn/javascript/asynchronous/index.html @@ -1,7 +1,8 @@ --- title: Асинхронний JavaScript -slug: Learn/JavaScript/Асинхронний +slug: Learn/JavaScript/Asynchronous translation_of: Learn/JavaScript/Asynchronous +original_slug: Learn/JavaScript/Асинхронний ---
{{LearnSidebar}}
diff --git a/files/uk/learn/javascript/building_blocks/index.html b/files/uk/learn/javascript/building_blocks/index.html index d4a6238d0f..64af01ebf9 100644 --- a/files/uk/learn/javascript/building_blocks/index.html +++ b/files/uk/learn/javascript/building_blocks/index.html @@ -1,7 +1,8 @@ --- title: Будівельні блоки JavaScript -slug: Learn/JavaScript/Будівельні_блоки +slug: Learn/JavaScript/Building_blocks translation_of: Learn/JavaScript/Building_blocks +original_slug: Learn/JavaScript/Будівельні_блоки ---
{{LearnSidebar}}
diff --git a/files/uk/learn/learning_and_getting_help/index.html b/files/uk/learn/learning_and_getting_help/index.html index c1dad68ac9..224cb6f423 100644 --- a/files/uk/learn/learning_and_getting_help/index.html +++ b/files/uk/learn/learning_and_getting_help/index.html @@ -1,7 +1,8 @@ --- title: Навчання та отримання допомоги -slug: Learn/Навчання_та_отримання_допомоги +slug: Learn/Learning_and_getting_help translation_of: Learn/Learning_and_getting_help +original_slug: Learn/Навчання_та_отримання_допомоги ---

{{learnsidebar}}

diff --git a/files/uk/learn/tools_and_testing/client-side_javascript_frameworks/index.html b/files/uk/learn/tools_and_testing/client-side_javascript_frameworks/index.html index 4380250538..8486b71311 100644 --- a/files/uk/learn/tools_and_testing/client-side_javascript_frameworks/index.html +++ b/files/uk/learn/tools_and_testing/client-side_javascript_frameworks/index.html @@ -1,7 +1,8 @@ --- title: Розуміння JavaScript-фреймворків на стороні клієнта -slug: Learn/Tools_and_testing/Розуміння_JavaScript-фреймворків_на_стороні_клієнта +slug: Learn/Tools_and_testing/Client-side_JavaScript_frameworks translation_of: Learn/Tools_and_testing/Client-side_JavaScript_frameworks +original_slug: Learn/Tools_and_testing/Розуміння_JavaScript-фреймворків_на_стороні_клієнта ---
{{LearnSidebar}}
diff --git a/files/uk/learn/tools_and_testing/client-side_javascript_frameworks/svelte_getting_started/index.html b/files/uk/learn/tools_and_testing/client-side_javascript_frameworks/svelte_getting_started/index.html index ba73b81f2b..1e8b54054a 100644 --- a/files/uk/learn/tools_and_testing/client-side_javascript_frameworks/svelte_getting_started/index.html +++ b/files/uk/learn/tools_and_testing/client-side_javascript_frameworks/svelte_getting_started/index.html @@ -1,9 +1,11 @@ --- title: Знайомимось зі Свелт slug: >- - Learn/Tools_and_testing/Розуміння_JavaScript-фреймворків_на_стороні_клієнта/znayomymos_zi_svelte + Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_getting_started translation_of: >- Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_getting_started +original_slug: >- + Learn/Tools_and_testing/Розуміння_JavaScript-фреймворків_на_стороні_клієнта/znayomymos_zi_svelte ---
{{LearnSidebar}}
{{PreviousMenuNext("Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_resources","Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_todo_list_beginning", "Learn/Tools_and_testing/Client-side_JavaScript_frameworks")}}
diff --git a/files/uk/learn/tools_and_testing/cross_browser_testing/index.html b/files/uk/learn/tools_and_testing/cross_browser_testing/index.html index e13df10951..460fa487f9 100644 --- a/files/uk/learn/tools_and_testing/cross_browser_testing/index.html +++ b/files/uk/learn/tools_and_testing/cross_browser_testing/index.html @@ -1,7 +1,8 @@ --- title: Тестування кросбраузерності -slug: Learn/Tools_and_testing/Тестування_кросбраузерності +slug: Learn/Tools_and_testing/Cross_browser_testing translation_of: Learn/Tools_and_testing/Cross_browser_testing +original_slug: Learn/Tools_and_testing/Тестування_кросбраузерності ---
{{LearnSidebar}}
diff --git a/files/uk/learn/tools_and_testing/github/index.html b/files/uk/learn/tools_and_testing/github/index.html index 6797857c6e..aee71d8e53 100644 --- a/files/uk/learn/tools_and_testing/github/index.html +++ b/files/uk/learn/tools_and_testing/github/index.html @@ -1,7 +1,8 @@ --- title: Git та GitHub -slug: Learn/Tools_and_testing/Git_та_GitHub +slug: Learn/Tools_and_testing/GitHub translation_of: Learn/Tools_and_testing/GitHub +original_slug: Learn/Tools_and_testing/Git_та_GitHub ---
{{LearnSidebar}}
diff --git a/files/uk/learn/tools_and_testing/understanding_client-side_tools/index.html b/files/uk/learn/tools_and_testing/understanding_client-side_tools/index.html index faa5717122..9720f485b7 100644 --- a/files/uk/learn/tools_and_testing/understanding_client-side_tools/index.html +++ b/files/uk/learn/tools_and_testing/understanding_client-side_tools/index.html @@ -1,7 +1,8 @@ --- title: Розуміння інструментів веб-розробки на стороні клієнта -slug: Learn/Tools_and_testing/Розуміння_інструментів_веб-розробки_на_стороні_клієнта +slug: Learn/Tools_and_testing/Understanding_client-side_tools translation_of: Learn/Tools_and_testing/Understanding_client-side_tools +original_slug: Learn/Tools_and_testing/Розуміння_інструментів_веб-розробки_на_стороні_клієнта ---
{{LearnSidebar}}
diff --git a/files/uk/mdn/about/index.html b/files/uk/mdn/about/index.html index c8643e0e51..687b08f8cb 100644 --- a/files/uk/mdn/about/index.html +++ b/files/uk/mdn/about/index.html @@ -1,11 +1,12 @@ --- title: Про MDN -slug: MDN/Про +slug: MDN/About tags: - MDN Meta - Путівник - Спільнота translation_of: MDN/About +original_slug: MDN/Про ---
{{MDNSidebar}}
diff --git a/files/uk/mdn/contribute/howto/create_and_edit_pages/index.html b/files/uk/mdn/contribute/howto/create_and_edit_pages/index.html index 5a4112ce39..900b4fa71f 100644 --- a/files/uk/mdn/contribute/howto/create_and_edit_pages/index.html +++ b/files/uk/mdn/contribute/howto/create_and_edit_pages/index.html @@ -1,11 +1,12 @@ --- title: Як створювати й редагувати сторінки -slug: MDN/Contribute/Howto/Як_створювати_й_редагувати_сторінки +slug: MDN/Contribute/Howto/Create_and_edit_pages tags: - Вступ - Початківець - Путівник translation_of: MDN/Contribute/Howto/Create_and_edit_pages +original_slug: MDN/Contribute/Howto/Як_створювати_й_редагувати_сторінки ---
{{MDNSidebar}}
diff --git a/files/uk/mdn/guidelines/writing_style_guide/index.html b/files/uk/mdn/guidelines/writing_style_guide/index.html index f8b14615da..f14340877a 100644 --- a/files/uk/mdn/guidelines/writing_style_guide/index.html +++ b/files/uk/mdn/guidelines/writing_style_guide/index.html @@ -1,12 +1,13 @@ --- title: Настанови зі стилю -slug: MDN/Guidelines/Настанови_зі_стилю +slug: MDN/Guidelines/Writing_style_guide tags: - MDN Meta - Style guide - Настанови зі стилю - Путівник translation_of: MDN/Guidelines/Writing_style_guide +original_slug: MDN/Guidelines/Настанови_зі_стилю ---
{{MDNSidebar}}
diff --git a/files/uk/mdn/structures/macros/commonly-used_macros/index.html b/files/uk/mdn/structures/macros/commonly-used_macros/index.html index da18bfcaa1..0e37855670 100644 --- a/files/uk/mdn/structures/macros/commonly-used_macros/index.html +++ b/files/uk/mdn/structures/macros/commonly-used_macros/index.html @@ -1,11 +1,12 @@ --- title: Загальновживані шаблони -slug: MDN/Structures/Шаблони/Загальновживані_шаблони +slug: MDN/Structures/Macros/Commonly-used_macros tags: - Structures - Довідка - Макрос translation_of: MDN/Structures/Macros/Commonly-used_macros +original_slug: MDN/Structures/Шаблони/Загальновживані_шаблони ---
{{MDNSidebar}}
diff --git a/files/uk/mdn/structures/macros/index.html b/files/uk/mdn/structures/macros/index.html index 41c1461950..73ae20c1c9 100644 --- a/files/uk/mdn/structures/macros/index.html +++ b/files/uk/mdn/structures/macros/index.html @@ -1,6 +1,6 @@ --- title: Шаблони -slug: MDN/Structures/Шаблони +slug: MDN/Structures/Macros tags: - Kuma - KumaScript @@ -8,6 +8,7 @@ tags: - Structures - Путівник translation_of: MDN/Structures/Macros +original_slug: MDN/Structures/Шаблони ---
{{MDNSidebar}}

Платформа Kuma, що на ній працює MDN, має потужний механізм шаблонів (макросів), KumaScript, який уможливлює автоматизацію чималої кількості речей. Ця сторінка надає інформацію про вжиток шаблонів MDN всередині статей.

diff --git a/files/uk/mdn/tools/kumascript/troubleshooting/index.html b/files/uk/mdn/tools/kumascript/troubleshooting/index.html index b7cadc39f4..2764ae5e87 100644 --- a/files/uk/mdn/tools/kumascript/troubleshooting/index.html +++ b/files/uk/mdn/tools/kumascript/troubleshooting/index.html @@ -1,6 +1,6 @@ --- title: Усунення помилок KumaScript -slug: MDN/Tools/KumaScript/Усунення_помилок_KumaScript +slug: MDN/Tools/KumaScript/Troubleshooting tags: - KumaScript - MDN Meta @@ -8,6 +8,7 @@ tags: - Помилки - Путівник translation_of: MDN/Tools/KumaScript/Troubleshooting +original_slug: MDN/Tools/KumaScript/Усунення_помилок_KumaScript ---
{{MDNSidebar}}

Помилки KumaScript, ці моторошні червоні прямокутники, що часом муляють око на сторінках, можуть відлякувати деяких читачів. Але, на щастя, кожен, хто має облікового записа MDN, може відредагувати статтю й виправити такі помилки. Якщо сторінка містить помилки, вона одразу потрапляє у перелік документів з помилками. Редактори сайту постійно переглядають той перелік й виправляють помилки. Ця сторінка наводить чотири різновиди помилок KumaScript та деякі можливі кроки для їх усунення.

diff --git a/files/uk/mdn/yari/index.html b/files/uk/mdn/yari/index.html index af18465d4f..11cc621995 100644 --- a/files/uk/mdn/yari/index.html +++ b/files/uk/mdn/yari/index.html @@ -1,10 +1,11 @@ --- title: 'Kuma: wiki-платформа MDN' -slug: MDN/Kuma +slug: MDN/Yari tags: - Kuma - MDN Meta translation_of: MDN/Kuma +original_slug: MDN/Kuma ---
{{MDNSidebar}}
diff --git a/files/uk/mozilla/add-ons/webextensions/what_are_webextensions/index.html b/files/uk/mozilla/add-ons/webextensions/what_are_webextensions/index.html index 2a9bc1da15..eccf78994d 100644 --- a/files/uk/mozilla/add-ons/webextensions/what_are_webextensions/index.html +++ b/files/uk/mozilla/add-ons/webextensions/what_are_webextensions/index.html @@ -1,10 +1,11 @@ --- title: Що таке розширення? -slug: Mozilla/Add-ons/WebExtensions/Що_таке_Web_Розширення +slug: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions tags: - Web-Розширення - Розширення translation_of: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions +original_slug: Mozilla/Add-ons/WebExtensions/Що_таке_Web_Розширення ---
{{AddonSidebar}}
diff --git a/files/uk/orphaned/learn/how_to_contribute/index.html b/files/uk/orphaned/learn/how_to_contribute/index.html index 9d73e3f192..e971a13d53 100644 --- a/files/uk/orphaned/learn/how_to_contribute/index.html +++ b/files/uk/orphaned/learn/how_to_contribute/index.html @@ -1,7 +1,8 @@ --- title: Як зробити внесок до навчальної бази MDN? -slug: Learn/How_to_contribute +slug: orphaned/Learn/How_to_contribute translation_of: Learn/How_to_contribute +original_slug: Learn/How_to_contribute ---
{{LearnSidebar}}
diff --git a/files/uk/orphaned/mdn/community/index.html b/files/uk/orphaned/mdn/community/index.html index a0265bb09c..eff5aeb5e8 100644 --- a/files/uk/orphaned/mdn/community/index.html +++ b/files/uk/orphaned/mdn/community/index.html @@ -1,11 +1,12 @@ --- title: Приєднуйтесь до спільноти MDN -slug: MDN/Community +slug: orphaned/MDN/Community tags: - Внесок - Керівництво - Спільнота translation_of: MDN/Community +original_slug: MDN/Community ---
{{MDNSidebar}}
diff --git a/files/uk/orphaned/mdn/contribute/howto/be_a_beta_tester/index.html b/files/uk/orphaned/mdn/contribute/howto/be_a_beta_tester/index.html index f642230d3c..5fbbfda66b 100644 --- a/files/uk/orphaned/mdn/contribute/howto/be_a_beta_tester/index.html +++ b/files/uk/orphaned/mdn/contribute/howto/be_a_beta_tester/index.html @@ -1,9 +1,10 @@ --- title: Як взяти учать в бета-тестуванні -slug: MDN/Contribute/Howto/Бета_тестування +slug: orphaned/MDN/Contribute/Howto/Be_a_beta_tester tags: - MDN Meta translation_of: MDN/Contribute/Howto/Be_a_beta_tester +original_slug: MDN/Contribute/Howto/Бета_тестування ---
{{MDNSidebar}}

Час від часу, коли розробники Kuma (платформа MDN) впроваджують якість зміни, ми завчасно надаємо доступ до останніх оновлень тим членам спільноти, що погодились брати участь в бета-тестуванні. Певно, що в режимі бета-тестування щось може не працювати як слід.

diff --git a/files/uk/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html b/files/uk/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html index 52d901c525..f270f727b6 100644 --- a/files/uk/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html +++ b/files/uk/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html @@ -1,6 +1,6 @@ --- title: Як створити обліковий запис MDN -slug: MDN/Contribute/Howto/Create_an_MDN_account +slug: orphaned/MDN/Contribute/Howto/Create_an_MDN_account tags: - MDN Мета - MDN профіль @@ -8,6 +8,7 @@ tags: - Керівництво - Початківець translation_of: MDN/Contribute/Howto/Create_an_MDN_account +original_slug: MDN/Contribute/Howto/Create_an_MDN_account ---
{{MDNSidebar}}

Щоб редагувати вміст у MDN, вам потрібен профіль MDN. Вам не потрібен профіль, якщо ви хочете лише читати і знайти документи MDN. Цей посібник допоможе вам налаштувати профіль MDN.

diff --git a/files/uk/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html b/files/uk/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html index 1867df663c..c5c9dc5ea5 100644 --- a/files/uk/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html +++ b/files/uk/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html @@ -1,12 +1,13 @@ --- title: Як робити редакційний огляд -slug: MDN/Contribute/Howto/Do_an_editorial_review +slug: orphaned/MDN/Contribute/Howto/Do_an_editorial_review tags: - MDN Meta - Документація - Путівник - Редакційний огляд translation_of: MDN/Contribute/Howto/Do_an_editorial_review +original_slug: MDN/Contribute/Howto/Do_an_editorial_review ---
{{MDNSidebar}}
diff --git a/files/uk/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html b/files/uk/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html index 36266220ba..49ee948e9e 100644 --- a/files/uk/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html +++ b/files/uk/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html @@ -1,11 +1,12 @@ --- title: Як зробити опис сторінки -slug: MDN/Contribute/Howto/Set_the_summary_for_a_page +slug: orphaned/MDN/Contribute/Howto/Set_the_summary_for_a_page tags: - MDN Meta - Посібник - Як translation_of: MDN/Contribute/Howto/Set_the_summary_for_a_page +original_slug: MDN/Contribute/Howto/Set_the_summary_for_a_page ---
{{MDNSidebar}}

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

diff --git a/files/uk/orphaned/web/javascript/reference/global_objects/array/prototype/index.html b/files/uk/orphaned/web/javascript/reference/global_objects/array/prototype/index.html index a4af191650..101393b973 100644 --- a/files/uk/orphaned/web/javascript/reference/global_objects/array/prototype/index.html +++ b/files/uk/orphaned/web/javascript/reference/global_objects/array/prototype/index.html @@ -1,6 +1,6 @@ --- title: Array.prototype -slug: Web/JavaScript/Reference/Global_Objects/Array/prototype +slug: orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype tags: - Array - JavaScript @@ -9,6 +9,7 @@ tags: - Масив - Поле translation_of: Web/JavaScript/Reference/Global_Objects/Array/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Array/prototype ---
{{JSRef}}
diff --git a/files/uk/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html b/files/uk/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html index c2df6c31db..6ac139b627 100644 --- a/files/uk/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html +++ b/files/uk/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html @@ -1,11 +1,12 @@ --- title: AsyncFunction.prototype -slug: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype +slug: orphaned/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype tags: - JavaScript - Властивість - прототип translation_of: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype ---
{{JSRef}}
diff --git a/files/uk/tools/index.html b/files/uk/tools/index.html index 71cbf1cf97..20a9763e7e 100644 --- a/files/uk/tools/index.html +++ b/files/uk/tools/index.html @@ -1,7 +1,8 @@ --- title: Firefox інструменти для розробників -slug: Інструменти +slug: Tools translation_of: Tools +original_slug: Інструменти ---

{{ToolsSidebar}}

diff --git a/files/uk/tools/network_monitor/index.html b/files/uk/tools/network_monitor/index.html index 7f3fb7d1f7..a9d84c2947 100644 --- a/files/uk/tools/network_monitor/index.html +++ b/files/uk/tools/network_monitor/index.html @@ -1,7 +1,8 @@ --- title: Монітор мережі -slug: Інструменти/Network_Monitor +slug: Tools/Network_Monitor translation_of: Tools/Network_Monitor +original_slug: Інструменти/Network_Monitor ---
{{ToolsSidebar}}
diff --git a/files/uk/tools/network_monitor/performance_analysis/index.html b/files/uk/tools/network_monitor/performance_analysis/index.html index 0ead428209..b9c6e4dc65 100644 --- a/files/uk/tools/network_monitor/performance_analysis/index.html +++ b/files/uk/tools/network_monitor/performance_analysis/index.html @@ -1,7 +1,8 @@ --- title: Аналіз швидкодії -slug: Інструменти/Network_Monitor/Performance_Analysis +slug: Tools/Network_Monitor/Performance_Analysis translation_of: Tools/Network_Monitor/Performance_Analysis +original_slug: Інструменти/Network_Monitor/Performance_Analysis ---

{{ToolsSidebar}}

diff --git a/files/uk/tools/network_monitor/recording/index.html b/files/uk/tools/network_monitor/recording/index.html index 223fa5291b..5cab741995 100644 --- a/files/uk/tools/network_monitor/recording/index.html +++ b/files/uk/tools/network_monitor/recording/index.html @@ -1,7 +1,8 @@ --- title: Записування мережного трафіку -slug: Інструменти/Network_Monitor/recording +slug: Tools/Network_Monitor/recording translation_of: Tools/Network_Monitor/recording +original_slug: Інструменти/Network_Monitor/recording ---

{{ToolsSidebar}}

diff --git a/files/uk/tools/network_monitor/request_details/index.html b/files/uk/tools/network_monitor/request_details/index.html index 61e496cc72..09440d641b 100644 --- a/files/uk/tools/network_monitor/request_details/index.html +++ b/files/uk/tools/network_monitor/request_details/index.html @@ -1,7 +1,8 @@ --- title: Подробиці мережних запитів -slug: Інструменти/Network_Monitor/request_details +slug: Tools/Network_Monitor/request_details translation_of: Tools/Network_Monitor/request_details +original_slug: Інструменти/Network_Monitor/request_details ---

{{ToolsSidebar}}

diff --git a/files/uk/tools/network_monitor/request_list/index.html b/files/uk/tools/network_monitor/request_list/index.html index 5225de12df..7c39dc0e95 100644 --- a/files/uk/tools/network_monitor/request_list/index.html +++ b/files/uk/tools/network_monitor/request_list/index.html @@ -1,7 +1,8 @@ --- title: Список мережних запитів -slug: Інструменти/Network_Monitor/request_list +slug: Tools/Network_Monitor/request_list translation_of: Tools/Network_Monitor/request_list +original_slug: Інструменти/Network_Monitor/request_list ---

{{ToolsSidebar}}

diff --git a/files/uk/tools/network_monitor/throttling/index.html b/files/uk/tools/network_monitor/throttling/index.html index 6c1136ce82..383803bab9 100644 --- a/files/uk/tools/network_monitor/throttling/index.html +++ b/files/uk/tools/network_monitor/throttling/index.html @@ -1,7 +1,8 @@ --- title: Обмеження швидкості передачі -slug: Інструменти/Network_Monitor/Throttling +slug: Tools/Network_Monitor/Throttling translation_of: Tools/Network_Monitor/Throttling +original_slug: Інструменти/Network_Monitor/Throttling ---

{{ToolsSidebar}}

diff --git a/files/uk/tools/network_monitor/toolbar/index.html b/files/uk/tools/network_monitor/toolbar/index.html index 17d1e32a47..5848d61122 100644 --- a/files/uk/tools/network_monitor/toolbar/index.html +++ b/files/uk/tools/network_monitor/toolbar/index.html @@ -1,7 +1,8 @@ --- title: Панель інструментів Монітору мережі -slug: Інструменти/Network_Monitor/toolbar +slug: Tools/Network_Monitor/toolbar translation_of: Tools/Network_Monitor/toolbar +original_slug: Інструменти/Network_Monitor/toolbar ---

{{ToolsSidebar}}

diff --git a/files/uk/tools/web_console/console_messages/index.html b/files/uk/tools/web_console/console_messages/index.html index 8ec5ba7826..ad9989244b 100644 --- a/files/uk/tools/web_console/console_messages/index.html +++ b/files/uk/tools/web_console/console_messages/index.html @@ -1,7 +1,8 @@ --- title: Повідомлення консолі -slug: Інструменти/Web_Console/Console_messages +slug: Tools/Web_Console/Console_messages translation_of: Tools/Web_Console/Console_messages +original_slug: Інструменти/Web_Console/Console_messages ---
{{ToolsSidebar}}
diff --git a/files/uk/tools/web_console/index.html b/files/uk/tools/web_console/index.html index 4af03a5978..052358d823 100644 --- a/files/uk/tools/web_console/index.html +++ b/files/uk/tools/web_console/index.html @@ -1,7 +1,8 @@ --- title: Веб-консоль - Web Console -slug: Інструменти/Web_Console +slug: Tools/Web_Console translation_of: Tools/Web_Console +original_slug: Інструменти/Web_Console ---

Веб-консоль:

diff --git a/files/uk/tools/web_console/split_console/index.html b/files/uk/tools/web_console/split_console/index.html index 35f6ed06ab..ea9c967170 100644 --- a/files/uk/tools/web_console/split_console/index.html +++ b/files/uk/tools/web_console/split_console/index.html @@ -1,7 +1,8 @@ --- title: Розділення консолі -slug: Інструменти/Web_Console/Split_console +slug: Tools/Web_Console/Split_console translation_of: Tools/Web_Console/Split_console +original_slug: Інструменти/Web_Console/Split_console ---
{{ToolsSidebar}}
diff --git a/files/uk/tools/web_console/ui_tour/index.html b/files/uk/tools/web_console/ui_tour/index.html index dc99cde6fc..575a1f37e8 100644 --- a/files/uk/tools/web_console/ui_tour/index.html +++ b/files/uk/tools/web_console/ui_tour/index.html @@ -1,7 +1,8 @@ --- title: Відкриття Веб-консолі -slug: Інструменти/Web_Console/Opening_the_Web_Console +slug: Tools/Web_Console/UI_Tour translation_of: Tools/Web_Console/UI_Tour +original_slug: Інструменти/Web_Console/Opening_the_Web_Console ---
{{ToolsSidebar}}
diff --git a/files/uk/web/api/canvas_api/tutorial/hit_regions_and_accessibility/index.html b/files/uk/web/api/canvas_api/tutorial/hit_regions_and_accessibility/index.html index cb7b8b615b..e02e218fa5 100644 --- a/files/uk/web/api/canvas_api/tutorial/hit_regions_and_accessibility/index.html +++ b/files/uk/web/api/canvas_api/tutorial/hit_regions_and_accessibility/index.html @@ -1,12 +1,13 @@ --- title: Чутливі ділянки та доступність -slug: Web/API/Canvas_API/Tutorial/Чутливі_ділянки_та_доступність +slug: Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility tags: - Canvas - Графіка - Полотно - Підручник translation_of: Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility +original_slug: Web/API/Canvas_API/Tutorial/Чутливі_ділянки_та_доступність ---
{{CanvasSidebar}} {{ PreviousNext("Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas", "Web/API/Canvas_API/Tutorial/Optimizing_canvas") }}
diff --git a/files/uk/web/api/event/index.html b/files/uk/web/api/event/index.html index e1aab3dfde..a7523c4d23 100644 --- a/files/uk/web/api/event/index.html +++ b/files/uk/web/api/event/index.html @@ -1,7 +1,8 @@ --- title: Подія -slug: Web/API/Подія +slug: Web/API/Event translation_of: Web/API/Event +original_slug: Web/API/Подія ---

{{APIRef("DOM")}}

diff --git a/files/uk/web/api/event/target/index.html b/files/uk/web/api/event/target/index.html index 20c17f2d31..c9a09ca3e9 100644 --- a/files/uk/web/api/event/target/index.html +++ b/files/uk/web/api/event/target/index.html @@ -1,7 +1,8 @@ --- title: Event.target -slug: Web/API/Подія/target +slug: Web/API/Event/target translation_of: Web/API/Event/target +original_slug: Web/API/Подія/target ---

{{ApiRef("DOM")}}

diff --git a/files/uk/web/api/htmlmediaelement/abort_event/index.html b/files/uk/web/api/htmlmediaelement/abort_event/index.html index 40a9e144fc..d6141f3ed7 100644 --- a/files/uk/web/api/htmlmediaelement/abort_event/index.html +++ b/files/uk/web/api/htmlmediaelement/abort_event/index.html @@ -1,8 +1,9 @@ --- title: abort -slug: Web/Events/abort +slug: Web/API/HTMLMediaElement/abort_event translation_of: Web/API/HTMLMediaElement/abort_event translation_of_original: Web/Events/abort +original_slug: Web/Events/abort ---

Подія abort спрацьовує коли завантаження ресурсу було перервано.

diff --git a/files/uk/web/api/page_visibility_api/index.html b/files/uk/web/api/page_visibility_api/index.html index 6675a3783b..2cf8077bd9 100644 --- a/files/uk/web/api/page_visibility_api/index.html +++ b/files/uk/web/api/page_visibility_api/index.html @@ -1,6 +1,6 @@ --- title: API відображення сторінки -slug: Web/API/API_відображення_сторінки +slug: Web/API/Page_Visibility_API tags: - API - API відображення сторінки @@ -10,6 +10,7 @@ tags: - процеси скритої закладки - фоновий режим translation_of: Web/API/Page_Visibility_API +original_slug: Web/API/API_відображення_сторінки ---
{{DefaultAPISidebar("Page Visibility API")}}
diff --git a/files/uk/web/api/window/domcontentloaded_event/index.html b/files/uk/web/api/window/domcontentloaded_event/index.html index 96ca54cfb0..c6e14d17a4 100644 --- a/files/uk/web/api/window/domcontentloaded_event/index.html +++ b/files/uk/web/api/window/domcontentloaded_event/index.html @@ -1,7 +1,8 @@ --- title: DOMContentLoaded -slug: Web/Events/DOMContentLoaded +slug: Web/API/Window/DOMContentLoaded_event translation_of: Web/API/Window/DOMContentLoaded_event +original_slug: Web/Events/DOMContentLoaded ---

Подія DOMContentLoaded викликається, коли вихідний HTML документ повністю завантажився та був розібраний (parse), без очікування повного завантаження стилів, зображень, сабфреймів (subframes). Зовсім інша подія - load - має використовуватися лише для того, щоб визначити повне завантаження сторінки. Використання load там, де застосування DOMContentLoaded є більш доречним, є дуже поширеною помилкою, тому будьте уважними.

diff --git a/files/uk/web/api/windoworworkerglobalscope/settimeout/index.html b/files/uk/web/api/windoworworkerglobalscope/settimeout/index.html index 19c90148ce..eff8576a84 100644 --- a/files/uk/web/api/windoworworkerglobalscope/settimeout/index.html +++ b/files/uk/web/api/windoworworkerglobalscope/settimeout/index.html @@ -1,7 +1,8 @@ --- title: WindowTimers.setTimeout() -slug: Web/API/WindowTimers/setTimeout +slug: Web/API/WindowOrWorkerGlobalScope/setTimeout translation_of: Web/API/WindowOrWorkerGlobalScope/setTimeout +original_slug: Web/API/WindowTimers/setTimeout ---
{{APIRef("HTML DOM")}}
diff --git a/files/uk/web/css/alternative_style_sheets/index.html b/files/uk/web/css/alternative_style_sheets/index.html index 1dd1b5a510..f805d1d125 100644 --- a/files/uk/web/css/alternative_style_sheets/index.html +++ b/files/uk/web/css/alternative_style_sheets/index.html @@ -1,10 +1,11 @@ --- title: Альтернативні таблиці стилів -slug: Web/CSS/Альтернативні_таблиці_стилів +slug: Web/CSS/Alternative_style_sheets tags: - Стилі - Теми translation_of: Web/CSS/Alternative_style_sheets +original_slug: Web/CSS/Альтернативні_таблиці_стилів ---

Specifying alternative style sheets in a web page provides a way for users to see multiple versions of a page, based on their needs or preferences.

diff --git a/files/uk/web/css/css_animations/using_css_animations/index.html b/files/uk/web/css/css_animations/using_css_animations/index.html index f8b8466ef4..eb125ac0af 100644 --- a/files/uk/web/css/css_animations/using_css_animations/index.html +++ b/files/uk/web/css/css_animations/using_css_animations/index.html @@ -1,10 +1,11 @@ --- title: Використання CSS анімацій -slug: Web/CSS/CSS_Animations/Використання_CSS_анімацій +slug: Web/CSS/CSS_Animations/Using_CSS_animations tags: - CSS Animations - Довідка translation_of: Web/CSS/CSS_Animations/Using_CSS_animations +original_slug: Web/CSS/CSS_Animations/Використання_CSS_анімацій ---

{{SeeCompatTable}}{{CSSRef}}

diff --git a/files/uk/web/css/css_box_model/index.html b/files/uk/web/css/css_box_model/index.html index 4920b7ceb9..5bd889607a 100644 --- a/files/uk/web/css/css_box_model/index.html +++ b/files/uk/web/css/css_box_model/index.html @@ -1,11 +1,12 @@ --- title: Коробчаста модель CSS -slug: Web/CSS/Коробчаста_модель_CSS +slug: Web/CSS/CSS_Box_Model tags: - CSS - Довідка - Коробчаста модель CSS translation_of: Web/CSS/CSS_Box_Model +original_slug: Web/CSS/Коробчаста_модель_CSS ---
Коробчаста модель (box model) — це алгоритм CSS, що подає елементи (включно з їх {{cssxref("margin", "відступами")}} та {{cssxref("padding", "полями")}}) у вигляді прямокутних «коробок» та компонує їх відповідно до {{cssxref("Visual_formatting_model", "моделі візуального формування")}}.
diff --git a/files/uk/web/css/css_box_model/mastering_margin_collapsing/index.html b/files/uk/web/css/css_box_model/mastering_margin_collapsing/index.html index b47325c5bf..44a6f7b56b 100644 --- a/files/uk/web/css/css_box_model/mastering_margin_collapsing/index.html +++ b/files/uk/web/css/css_box_model/mastering_margin_collapsing/index.html @@ -1,11 +1,12 @@ --- title: Згортання відступів -slug: Web/CSS/CSS_Box_Model/Згортання_відступів +slug: Web/CSS/CSS_Box_Model/Mastering_margin_collapsing tags: - CSS - Коробчаста модель CSS - Посібник translation_of: Web/CSS/CSS_Box_Model/Mastering_margin_collapsing +original_slug: Web/CSS/CSS_Box_Model/Згортання_відступів ---
{{CSSRef}}
diff --git a/files/uk/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html b/files/uk/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html index e111a70633..bbd3d8d5e4 100644 --- a/files/uk/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html +++ b/files/uk/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html @@ -1,8 +1,9 @@ --- title: Використання CSS flexible-боксів -slug: Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes +slug: Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox translation_of: Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox translation_of_original: Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes +original_slug: Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes ---
{{CSSRef}}
diff --git a/files/uk/web/css/layout_cookbook/index.html b/files/uk/web/css/layout_cookbook/index.html index e6d7f61135..0af6191a71 100644 --- a/files/uk/web/css/layout_cookbook/index.html +++ b/files/uk/web/css/layout_cookbook/index.html @@ -1,7 +1,8 @@ --- title: Кулінарна книга з CSS розмітки -slug: Web/CSS/Розмітка_кулінарна-книга +slug: Web/CSS/Layout_cookbook translation_of: Web/CSS/Layout_cookbook +original_slug: Web/CSS/Розмітка_кулінарна-книга ---
{{CSSRef}}
diff --git a/files/uk/web/css/layout_mode/index.html b/files/uk/web/css/layout_mode/index.html index 5794b4c397..504d11adc7 100644 --- a/files/uk/web/css/layout_mode/index.html +++ b/files/uk/web/css/layout_mode/index.html @@ -1,12 +1,13 @@ --- title: Схема компонування -slug: Web/CSS/Схема_компонування +slug: Web/CSS/Layout_mode tags: - CSS - Компонування - Розмітка - Розташування translation_of: Web/CSS/Layout_mode +original_slug: Web/CSS/Схема_компонування ---
Схема компонування (layout mode) в CSS являє собою алгоритм, який визначає розташування та розміри елементів залежно від того, як вони взаємодіють із сусідніми та батьківськими елементами. Існує декілька таких схем:
diff --git a/files/uk/web/css/reference/index.html b/files/uk/web/css/reference/index.html index ba325fe7da..1eb6730f98 100644 --- a/files/uk/web/css/reference/index.html +++ b/files/uk/web/css/reference/index.html @@ -1,7 +1,8 @@ --- title: CSS довідник -slug: Web/CSS/Довідник +slug: Web/CSS/Reference translation_of: Web/CSS/Reference +original_slug: Web/CSS/Довідник ---

This CSS Reference shows the basic syntax of a CSS rule; lists all standard CSS properties, pseudo-classes and pseudo-elements, @-rules, units, and selectors, all together in alphabetical order, as well as just the selectors by type; and allows you to quickly access detailed information for each of them. It not only lists the CSS 1 and CSS 2.1 properties, but also is a CSS3 reference that links to any CSS3 property and concept standardized, or already stabilized.  Also included is a brief DOM-CSS / CSSOM reference.

diff --git a/files/uk/web/css/visual_formatting_model/index.html b/files/uk/web/css/visual_formatting_model/index.html index fb25e2d60a..521725152a 100644 --- a/files/uk/web/css/visual_formatting_model/index.html +++ b/files/uk/web/css/visual_formatting_model/index.html @@ -1,11 +1,12 @@ --- title: Модель візуального формування -slug: Web/CSS/Модель_візуального_формування +slug: Web/CSS/Visual_formatting_model tags: - CSS - NeedsUpdate - Коробчаста модель CSS translation_of: Web/CSS/Visual_formatting_model +original_slug: Web/CSS/Модель_візуального_формування ---

Модель візуального форматування (visual formatting model) у CSS являє собою алгоритм, що обробляє документ та подає його на візуальному носії. Ця модель є основним поняттям CSS.

diff --git a/files/uk/web/guide/graphics/index.html b/files/uk/web/guide/graphics/index.html index 57af0fdbc3..1c2b45e7a9 100644 --- a/files/uk/web/guide/graphics/index.html +++ b/files/uk/web/guide/graphics/index.html @@ -1,6 +1,6 @@ --- title: Графіка для Web -slug: Web/Guide/Графіка +slug: Web/Guide/Graphics tags: - 2D - 3D @@ -12,6 +12,7 @@ tags: - Веб - Графіка translation_of: Web/Guide/Graphics +original_slug: Web/Guide/Графіка ---

Сучасним сайтам і веб-додаткам потрібне відображення графіки. Статичні зображення легко зобразити використовуючи елемент {{HTMLElement("img")}}, чи налаштувати фон HTML елементів використовуючи властивість {{cssxref("background-image")}}. Ви також можете конструювати графіку на льоту, або модифікувати її після. В статтях далі сказано як це можна зробити.

diff --git a/files/uk/web/guide/html/using_html_sections_and_outlines/index.html b/files/uk/web/guide/html/using_html_sections_and_outlines/index.html index 84db2e6a76..756fb825b1 100644 --- a/files/uk/web/guide/html/using_html_sections_and_outlines/index.html +++ b/files/uk/web/guide/html/using_html_sections_and_outlines/index.html @@ -1,7 +1,8 @@ --- title: Використання HTML-секцій та структура документу -slug: Web/Guide/HTML/Використання_HTML-секцій_та_структура_документу +slug: Web/Guide/HTML/Using_HTML_sections_and_outlines translation_of: Web/Guide/HTML/Using_HTML_sections_and_outlines +original_slug: Web/Guide/HTML/Використання_HTML-секцій_та_структура_документу ---

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

diff --git a/files/uk/web/houdini/index.html b/files/uk/web/houdini/index.html index 92be6ef3cc..73a9b05abb 100644 --- a/files/uk/web/houdini/index.html +++ b/files/uk/web/houdini/index.html @@ -1,7 +1,8 @@ --- title: CSS Гудіні -slug: Web/Гудіні +slug: Web/Houdini translation_of: Web/Houdini +original_slug: Web/Гудіні ---

Гудіні - це набір низькорівневих API, які надають доступ до СSS движка, даючи розробникам змогу розширити СSS підключаючись до процесу створення макету та застосування стилів в процесі роботи браузерного движка. Гудіні - набір API, які дають розробникам прямий доступ  CSS Object Model (CSSOM), дозволяючи розробникам писати код який браузер може розібрати як CSS, таким чином створюючи нові СSS властивості не чекаючи щоб вони були реалізовані в браузерах.

diff --git a/files/uk/web/html/element/header/index.html b/files/uk/web/html/element/header/index.html index 9ed3c75dfa..6531e7e8a9 100644 --- a/files/uk/web/html/element/header/index.html +++ b/files/uk/web/html/element/header/index.html @@ -1,10 +1,11 @@ --- title:
-slug: Web/HTML/Елемент/Заголовок +slug: Web/HTML/Element/header tags: - HTML - HTML елементи translation_of: Web/HTML/Element/header +original_slug: Web/HTML/Елемент/Заголовок ---
{{HTMLRef}}
diff --git a/files/uk/web/html/element/html/index.html b/files/uk/web/html/element/html/index.html index 22489d772f..5aac366c84 100644 --- a/files/uk/web/html/element/html/index.html +++ b/files/uk/web/html/element/html/index.html @@ -1,10 +1,11 @@ --- title: -slug: Web/HTML/Елемент/html +slug: Web/HTML/Element/html tags: - Корінь - Структура translation_of: Web/HTML/Element/html +original_slug: Web/HTML/Елемент/html ---

{{HTMLRef}}

diff --git a/files/uk/web/html/element/iframe/index.html b/files/uk/web/html/element/iframe/index.html index fc5b06a037..df56027e84 100644 --- a/files/uk/web/html/element/iframe/index.html +++ b/files/uk/web/html/element/iframe/index.html @@ -1,7 +1,8 @@ --- title: '