Skip to content

Commit 1c80c01

Browse files
committed
Sync with upstream @ d6e8864 (#123)
* Sync with upstream @ d6e8864
1 parent c2c0020 commit 1c80c01

File tree

47 files changed

+652
-456
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+652
-456
lines changed

1-js/01-getting-started/1-intro/article.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Вступ до JavaScript
22

3-
Давайте розглянемо, що такого особливого в JavaScript, що ми дожемо досягти з його допомогою і які ще технології пов'язані з ним.
3+
Давайте розглянемо, що такого особливого в JavaScript, що ми дожемо досягти з його допомогою і які ще технології повязані з ним.
44

55
## Що таке JavaScript?
66

@@ -26,9 +26,9 @@
2626

2727
- [V8](https://uk.wikipedia.org/wiki/V8_(рушій_JavaScript)) -- в Chrome і Opera.
2828
- [SpiderMonkey](https://uk.wikipedia.org/wiki/SpiderMonkey) -- в Firefox.
29-
- ...Є також інші кодові назви як "Trident" і "Chakra" для різних версій IE, "ChakraCore" для Microsoft Edge, "Nitro" і "SquirrelFish" для Safari, та інші.
29+
- ...Є також інші кодові назви як "Chakra" для IE, "ChakraCore" для Microsoft Edge, "Nitro" і "SquirrelFish" для Safari, та інші.
3030

31-
Написані вище терміни добре було б запам'ятати, оскільки вони використовуються в статтях розробників на просторах інтернету. Ми також будемо їх використовувати. Наприклад, якщо "можливість X підтримується в V8", тоді ймовірно це буде працювати в Chrome і Opera.
31+
Написані вище терміни добре було б запамятати, оскільки вони використовуються в статтях розробників на просторах інтернету. Ми також будемо їх використовувати. Наприклад, якщо "можливість X підтримується в V8", тоді ймовірно це буде працювати в Chrome і Opera.
3232

3333
```smart header="Як рушії працюють?"
3434
@@ -43,23 +43,23 @@
4343

4444
## Що може вбудований в браузер JavaScript?
4545

46-
Сучасний JavaScript — це "безпечна" мова програмування. Вона не надає низькорівневого доступу до пам'яті чи процесора, оскільки початково була створена для браузерів, які цього не потребують.
46+
Сучасний JavaScript — це "безпечна" мова програмування. Вона не надає низькорівневого доступу до памяті чи процесора, оскільки початково була створена для браузерів, які цього не потребують.
4747

4848
Можливості JavaScript значно залежать від оточення, в якому він виконується. Наприклад, [Node.js](https://uk.wikipedia.org/wiki/Node.js) підтримує функції, які дозволяють JavaScript читати/записувати довільні файли, здійснювати мережеві запити, та інше.
4949

50-
Вбудований в браузер JavaScript може робити все, що зв'язано з маніпуляцією веб-сторінками, взаємодією з користувачем та веб-сервером.
50+
Вбудований в браузер JavaScript може робити все, що звязано з маніпуляцією веб-сторінками, взаємодією з користувачем та веб-сервером.
5151

5252
Наприклад, вбудований в браузер JavaScript може:
5353

5454
- Додавати новий HTML-код на сторінку, змінювати існуючий вміст, змінювати стилі.
5555
- Реагувати на дії користувача, опрацьовувати натискання миші, переміщення вказівника, натискання на клавіші клавіатури.
5656
- Відправляти запити через мережу до віддалених серверів, завантажувати і відвантажувати файли (так звані технології [AJAX](https://uk.wikipedia.org/wiki/AJAX) і [COMET](https://uk.wikipedia.org/wiki/Comet_(програмування))).
5757
- Отримувати і надсилати [куки](https://uk.wikipedia.org/wiki/Куки), задавати питання відвідувачам, показувати повідомлення.
58-
- Запам'ятовувати дані на стороні клієнта ("[local storage](https://developer.mozilla.org/uk/docs/Web/API/Window/localStorage)").
58+
- Запамятовувати дані на стороні клієнта ("[local storage](https://developer.mozilla.org/uk/docs/Web/API/Window/localStorage)").
5959

6060
## Що НЕ може вбудований в браузер JavaScript?
6161

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

6464
Приклади таких обмежень:
6565

@@ -100,7 +100,7 @@ JavaScript – це єдина браузерна технологія, яка
100100

101101
Цього слід очікувати, тому що проекти і вимоги різні для кожного.
102102

103-
Останнім часом з'явилося безліч нових мов, які *транспілюються* (конвертуються) в JavaScript до того, як виконаються в браузері.
103+
Останнім часом зявилося безліч нових мов, які *транспілюються* (конвертуються) в JavaScript до того, як виконаються в браузері.
104104

105105
Сучасні інструменти роблять транспіляцію дуже швидкою і прозорою, дозволяючи розробникам писати код іншою мовою і автоматично конвертувати його "під капотом".
106106

@@ -116,6 +116,6 @@ JavaScript – це єдина браузерна технологія, яка
116116

117117
## Підсумки
118118

119-
- JavaScript спочатку був створений лише як мова для браузера, але зараз його також використовують в інших середовищах.
120-
- Сьогодні, JavaScript позиціонується як найбільш поширена мова для браузера з повною інтеграцією із HTML/CSS.
119+
- Мова JavaScript спочатку була створена лише як мова для браузера, але зараз її також використовують в інших середовищах.
120+
- Сьогодні, JavaScript позиціонується як найбільш поширена мова для браузера з повною інтеграцією в HTML/CSS.
121121
- Є багато мов які "транспілюються" в JavaScript і надають певні функції. Рекомендується переглянути їх, принаймні мигцем, після освоєння JavaScript.

1-js/02-first-steps/05-types/article.md

+20-17
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ let message = "привіт";
1212
message = 123456;
1313
```
1414

15-
Мови програмування, які дозволяють таке робити, називаються "динамічно типізованими". Мається на увазі, що типи даних визначені, але змінні не прив'язанні до жодного типу.
15+
Мови програмування, які дозволяють таке робити, називаються "динамічно типізованими". Мається на увазі, що типи даних визначені, але змінні не привязанні до жодного типу.
1616

17-
## Number (число)
17+
## Число (number)
1818

1919
```js
2020
let n = 123;
@@ -66,7 +66,7 @@ n = 12.345;
6666

6767
## BigInt
6868

69-
В JavaScript, тип "number" не може вміщувати числа більші за <code>(2<sup>53</sup>-1)</code> (це `9007199254740991`), або менші за <code>-(2<sup>53</sup>-1)</code> для від'ємних чисел. Це технічне обмеження, викликане їх внутрішньою реалізацією.
69+
В JavaScript, тип "number" не може вміщувати числа більші за <code>(2<sup>53</sup>-1)</code> (це `9007199254740991`), або менші за <code>-(2<sup>53</sup>-1)</code> для відємних чисел. Це технічне обмеження, викликане їх внутрішньою реалізацією.
7070

7171
Для більшості потреб цього достатньо, але бувають випадки, коли нам потрібні дійсно великі числа, наприклад, для криптографії або мікроксекундних часових міток (timestamps).
7272

@@ -81,11 +81,14 @@ const bigInt = 1234567890123456789012345678901234567890n;
8181

8282
Через те, що тип `BigInt` рідко використовується, ми не розглядатимемо його в цьому розділі, проте ми винесли його в окремий розділ <info:bigint>. Прочитайте його, якщо вам потрібні такі великі числа.
8383

84+
8485
```smart header="Проблеми з сумісністю"
85-
Цієї миті, підтримка типу `BigInt` є в браузерах Firefox/Chrome/Edge, але не в Safari/IE.
86+
Цієї миті, підтримка типу `BigInt` є в останніх версіях Firefox/Chrome/Edge/Safari з iOS 14, але не в IE.
8687
```
8788

88-
## String (рядок)
89+
На сайті *MDN* є [таблиця сумісності](https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Сумісність_з_веб-переглядачами), де показано, які версії браузерів підтримують тип `BigInt`.
90+
91+
## Рядок (string)
8992

9093
Рядок в JavaScript повинен бути оточений лапками.
9194

@@ -130,7 +133,7 @@ alert("результат: ${1 + 2}"); // результат: ${1 + 2} (подв
130133
В JavaScript не існує такого типу. Є єдиний тип: `string`. Рядок може містити нуль символів (бути пустим), один символ або більше.
131134
```
132135

133-
## Boolean (булевий або логічний тип)
136+
## Булевий або логічний тип (boolean)
134137

135138
Логічний тип може приймати лише два значення: `true` (істина) та `false` (хиба).
136139

@@ -139,7 +142,7 @@ alert("результат: ${1 + 2}"); // результат: ${1 + 2} (подв
139142
Наприклад:
140143

141144
```js
142-
let nameFieldChecked = true; // так, ім'я було перевірене
145+
let nameFieldChecked = true; // так, імя було перевірене
143146
let ageFieldChecked = false; // ні, вік не був перевіреним
144147
```
145148

@@ -163,7 +166,7 @@ alert(isGreater); // true (результат порівняння — "так")
163166
let age = null;
164167
```
165168

166-
В JavaScript `null` не є "посиланням на неіснуючий об'єкт" або "покажчиком на null", як може бути в інших мовах програмування.
169+
В JavaScript `null` не є "посиланням на неіснуючий обєкт" або "покажчиком на null", як може бути в інших мовах програмування.
167170

168171
Це лише спеціальне значення, яке представляє "нічого", "порожнє" або "невідоме значення".
169172

@@ -196,15 +199,15 @@ alert(age); // "undefined"
196199

197200
...Але ми не рекомендуємо так робити. Як правило, ми використовуємо `null`, щоб присвоїти змінній значення "порожнє" або "невідоме", тоді як `undefined` зарезервоване для позначення початкового значення для неприсвоєних речей.
198201

199-
## Об'єкти (object) та символи (symbol)
202+
## Обєкти (object) та символи (symbol)
200203

201204
Тип `object` є особливим типом.
202205

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

205-
Об'єкти є важливою частиною мови, тому ми окремо розглянемо їх в розділі <info:object> після того, як дізнаємося більше про примітиви.
208+
Обєкти є важливою частиною мови, тому ми окремо розглянемо їх в розділі <info:object> після того, як дізнаємося більше про примітиви.
206209

207-
Тип `symbol` використовується для створення унікальних ідентифікаторів в об'єктах. Ми згадали цей тип для повноти, проте детальніше вивчимо його після об'єктів.
210+
Тип `symbol` використовується для створення унікальних ідентифікаторів в обєктах. Ми згадали цей тип для повноти, проте детальніше вивчимо його після обєктів.
208211

209212
## Оператор typeof [#type-typeof]
210213

@@ -247,9 +250,9 @@ typeof alert // "function" (3)
247250

248251
Останні три рядки можуть потребувати додаткового пояснення:
249252

250-
1. `Math` — це вбудований об'єкт, який забезпечує математичні операції. Ми вивчимо його в розділі <info:number>. Тут він використаний лише як приклад об'єкта.
251-
2. Результатом `typeof null` є `"object"`. Це офіційно визнана помилка в поведінці `typeof`, що існує ще з ранніх днів JavaScript і зберігається для сумісності. Безперечно, `null` не є об'єктом. Це особливе значення з власним типом.
252-
3. Результатом `typeof alert` є `"function"`, тому що `alert` — це функція. Ми будемо вивчати функції в наступних розділах, де ми також побачимо, що в JavaScript немає спеціального типу "function". Функції належать до типу "об'єкт". Але `typeof` трактує їх по-іншому, повертаючи `"function"`. Це також присутнє з ранніх днів JavaScript. Технічно, така поведінка не зовсім правильна, але може бути зручною на практиці.
253+
1. `Math` — це вбудований обєкт, який забезпечує математичні операції. Ми вивчимо його в розділі <info:number>. Тут він використаний лише як приклад обєкта.
254+
2. Результатом `typeof null` є `"object"`. Це офіційно визнана помилка в поведінці `typeof`, що існує ще з ранніх днів JavaScript і зберігається для сумісності. Безперечно, `null` не є обєктом. Це особливе значення з власним типом.
255+
3. Результатом `typeof alert` є `"function"`, тому що `alert` — це функція. Ми будемо вивчати функції в наступних розділах, де ми також побачимо, що в JavaScript немає спеціального типу "function". Функції належать до типу "обєкт". Але `typeof` трактує їх по-іншому, повертаючи `"function"`. Це також присутнє з ранніх днів JavaScript. Технічно, така поведінка не зовсім правильна, але може бути зручною на практиці.
253256

254257
## Підсумки
255258

@@ -268,6 +271,6 @@ typeof alert // "function" (3)
268271

269272
- Дві форми: `typeof x` або `typeof(x)`.
270273
- Повертає рядок з назвою типу, як-от `"string"`.
271-
- Для `null` повертає `"object"` — це помилка в мові, `null` насправді не об'єкт.
274+
- Для `null` повертає `"object"` — це помилка в мові, `null` насправді не обєкт.
272275

273-
В наступних розділах ми зосередимося на примітивних значеннях, а коли ознайомимося з ними, то перейдемо до об'єктів.
276+
В наступних розділах ми зосередимося на примітивних значеннях, а коли ознайомимося з ними, то перейдемо до обєктів.

1-js/02-first-steps/08-operators/4-fix-prompt/solution.md

-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ alert(a + b); // 12
1111

1212
Нам треба перетворити рядки на числа перед застосуванням оператора `+`. Наприклад, за допомогою `Number()` або вставлення `+` перед ними.
1313

14-
1514
Вставити `+` можна безпосередньо перед `prompt`:
1615

1716
```js run

0 commit comments

Comments
 (0)