Skip to content

Commit f4506e1

Browse files
committed
merging all conflicts
2 parents 75a04ed + d78b01e commit f4506e1

File tree

43 files changed

+1395
-62
lines changed

Some content is hidden

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

43 files changed

+1395
-62
lines changed

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: iliakan

1-js/01-getting-started/4-devtools/article.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
Ось так відображається помилка в консолі:
2424

25-
![chrome](chrome.png)
25+
![chrome](chrome.webp)
2626

2727
Точний вигляд інструментів розробника може відрізнятися в залежності від вашої версії Chrome, а також налаштування мови.
2828

@@ -49,7 +49,11 @@
4949

5050
Safari (стандартний браузер у macOS, не підтримується Windows/Linux) має свої нюанси. Спочатку нам потрібно увімкнути меню "Розробка".
5151

52+
<<<<<<< HEAD
5253
Відкрийте Параметри та перейдіть на панель "Експертні". Знизу буде галочка, яку необхідно вибрати:
54+
=======
55+
Open Settings and go to the "Advanced" pane. There's a checkbox at the bottom:
56+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
5357
5458
![safari](safari.png)
5559

22.2 KB
Loading
48.3 KB
Loading

1-js/02-first-steps/04-variables/article.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,16 +88,26 @@ let user = 'Іван'
8888
*!*var*/!* message = 'Привіт';
8989
```
9090

91+
<<<<<<< HEAD
9192
Ключове слово `var` *майже* таке, як `let`. Воно теж оголошує змінну, але дещо іншим, "застарілим" способом.
9293

9394
Є деякі відмінності між `let` і `var`, але вони поки що не мають для нас значення. Ми дізнаємося більше про ці відмінності в розділі <info:var>.
95+
=======
96+
The `var` keyword is *almost* the same as `let`. It also declares a variable but in a slightly different, "old-school" way.
97+
98+
There are subtle differences between `let` and `var`, but they do not matter to us yet. We'll cover them in detail in the chapter <info:var>.
99+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
94100
````
95101
96102
## Аналогія з життя
97103
98104
Ми легко зрозуміємо концепцію "змінної", якщо уявимо її у вигляді "коробки" для даних з унікальною назвою на наклейці.
99105
106+
<<<<<<< HEAD
100107
Наприклад, змінну `message` можна уявити як коробку з написом `"Повідомлення"` зі значенням `"Привіт!"` всередині:
108+
=======
109+
For instance, the variable `message` can be imagined as a box labelled `"message"` with the value `"Hello!"` in it:
110+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
101111
102112
![](variable.svg)
103113
@@ -197,15 +207,24 @@ let my-name; // дефіс '-' недопустимий в імені
197207
Змінні з іменами `apple` і `APPLE` -- це дві різні змінні.
198208
```
199209

210+
<<<<<<< HEAD
200211
````smart header="Нелатинські букви дозволені, але не рекомендуються"
201212
Можна використовувати будь-яку мову, включно з кирилицею або навіть ієрогліфами, наприклад:
213+
=======
214+
````smart header="Non-Latin letters are allowed, but not recommended"
215+
It is possible to use any language, including Cyrillic letters, Chinese logograms and so on, like this:
216+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
202217
203218
```js
204219
let назва = '...';
205220
let 我 = '...';
206221
```
207222
223+
<<<<<<< HEAD
208224
Технічно тут немає помилки. Такі імена дозволені, проте є міжнародна традиція використовувати англійську мову в іменах змінних (наприклад, `yaLyublyuUkrainu` => `iLoveUkraine`). Навіть якщо ми пишемо маленький скрипт, у нього може бути тривале життя попереду. Можливо, людям з інших країн колись доведеться прочитати його.
225+
=======
226+
Technically, there is no error here. Such names are allowed, but there is an international convention to use English in variable names. Even if we're writing a small script, it may have a long life ahead. People from other countries may need to read it sometime.
227+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
209228
````
210229

211230
````warn header="Зарезервовані слова"
@@ -260,11 +279,19 @@ const myBirthday = '18.04.1982';
260279
myBirthday = '01.01.2001'; // помилка, не можна перевизначати константу!
261280
```
262281
282+
<<<<<<< HEAD
263283
Коли програміст впевнений, що змінна ніколи не буде змінюватися, він може оголосити її через `const`, що гарантує постійність і буде зрозумілим для кожного.
284+
=======
285+
When a programmer is sure that a variable will never change, they can declare it with `const` to guarantee and communicate that fact to everyone.
286+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
264287
265288
### Константи в верхньому регістрі
266289
290+
<<<<<<< HEAD
267291
Широко поширена практика використання констант як псевдонімів для значень, які важко запам’ятати і які відомі до початку виконання скрипту.
292+
=======
293+
There is a widespread practice to use constants as aliases for difficult-to-remember values that are known before execution.
294+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
268295
269296
Такі константи пишуться в верхньому регістрі з використанням підкреслень.
270297
@@ -289,15 +316,23 @@ alert(color); // #FF7F00
289316
290317
Коли ми маємо використовувати для констант великі букви, а коли звичайні? Давайте це з’ясуємо.
291318
319+
<<<<<<< HEAD
292320
Назва "константа" лише означає, що змінна ніколи не зміниться. Але є константи, які відомі нам до виконання скрипту (наприклад, шістнадцяткове значення для червоного кольору), а є константи, які *вираховуються* в процесі виконання скрипту, але не змінюються після їхнього початкового присвоєння.
321+
=======
322+
Being a "constant" just means that a variable's value never changes. But some constants are known before execution (like a hexadecimal value for red) and some constants are *calculated* in run-time, during the execution, but do not change after their initial assignment.
323+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
293324
294325
Наприклад:
295326
296327
```js
297328
const pageLoadTime = /* час, потрачений на завантаження вебсторінки */;
298329
```
299330
331+
<<<<<<< HEAD
300332
Значення `pageLoadTime` невідоме до завантаження сторінки, тому її ім’я записано звичайними, а не великими буквами. Але це все ще константа, тому що вона не змінює значення після присвоєння.
333+
=======
334+
The value of `pageLoadTime` is not known before the page load, so it's named normally. But it's still a constant because it doesn't change after the assignment.
335+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
301336
302337
Інакше кажучи, константи з великими буквами використовуються як псевдоніми для "жорстко закодованих" значень.
303338
@@ -307,18 +342,31 @@ const pageLoadTime = /* час, потрачений на завантаженн
307342
308343
Такі імена повинні мати чіткий і зрозумілий сенс, який описує дані, що в них зберігаються.
309344
345+
<<<<<<< HEAD
310346
Іменування змінних -- одна з найважливіших і найскладніших навичок у програмуванні. Швидкий погляд на імена змінних може показати, який код був написаний початківцем, а який досвідченим розробником.
311347
312348
У реальному проєкті більшість часу тратиться на змінення і розширення наявної кодової бази, а не на написання чогось цілком нового. Коли ми повертаємося до якогось коду після виконання чогось іншого впродовж тривалого часу, набагато легше знайти інформацію, яку добре позначено. Або, інакше кажучи, коли змінні мають хороші імена.
349+
=======
350+
Variable naming is one of the most important and complex skills in programming. A glance at variable names can reveal which code was written by a beginner versus an experienced developer.
351+
352+
In a real project, most of the time is spent modifying and extending an existing code base rather than writing something completely separate from scratch. When we return to some code after doing something else for a while, it's much easier to find information that is well-labelled. Or, in other words, when the variables have good names.
353+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
313354
314355
Будь ласка, приділяйте час на обдумування правильного імені для змінної перед її оголошенням. Робіть так, і будете винагороджені.
315356
316357
Декілька хороших правил:
317358
359+
<<<<<<< HEAD
318360
- Використовуйте імена, які легко прочитати, як-от `userName` або `shoppingCart`.
319361
- Уникайте використання абревіатур або коротких імен, таких як `a`, `b` та `c`, окрім тих випадків, коли ви точно знаєте, що так потрібно.
320362
- Робіть імена максимально описовими і лаконічними. Наприклад, такі імена погані: `data` і `value`. Такі імена нічого не говорять. Їх можна використовувати лише тоді, коли з контексту очевидно, на які дані або значення посилається змінна.
321363
- Погоджуйте з вашою командою (та з самим собою), які терміни будуть використовуватися у проєкті. Якщо відвідувач сайту називається "user", тоді ми маємо давати відповідні імена іншим пов’язаним змінним: `currentUser` або `newUser`, замість `currentVisitor` або `newManInTown`.
364+
=======
365+
- Use human-readable names like `userName` or `shoppingCart`.
366+
- Stay away from abbreviations or short names like `a`, `b`, and `c`, unless you know what you're doing.
367+
- Make names maximally descriptive and concise. Examples of bad names are `data` and `value`. Such names say nothing. It's only okay to use them if the context of the code makes it exceptionally obvious which data or value the variable is referencing.
368+
- Agree on terms within your team and in your mind. If a site visitor is called a "user" then we should name related variables `currentUser` or `newUser` instead of `currentVisitor` or `newManInTown`.
369+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
322370
323371
Звучить легко? Це дійсно так, проте на практиці створення зрозумілих і коротких імен -- рідкість. Дійте.
324372

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ const bigInt = 1234567890123456789012345678901234567890n;
9494

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

97+
<<<<<<< HEAD
9798

9899
```smart header="Проблеми із сумісністю"
99100
Цієї миті, підтримка типу `BigInt` є в останніх версіях Firefox/Chrome/Edge/Safari, але не в IE.
@@ -102,6 +103,9 @@ const bigInt = 1234567890123456789012345678901234567890n;
102103
На сайті *MDN* є [таблиця сумісності](https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Сумісність_з_веб-переглядачами), де показано, які версії браузерів підтримують тип `BigInt`.
103104

104105
## Рядок (string)
106+
=======
107+
## String
108+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
105109

106110
Рядок у JavaScript має бути оточений лапками.
107111

1-js/02-first-steps/09-comparison/article.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,16 @@ alert( undefined == 0 ); // false (3)
209209

210210
## Підсумки
211211

212+
<<<<<<< HEAD
212213
- Оператори порівняння повертають значення логічного типу.
213214
- Рядки порівнюються посимвольно в лексикографічному порядку.
214215
- Значення різних типів під час порівняння конвертуються в числа. Винятками є порівняння за допомогою операторів строгої рівності/нерівності.
215216
- Значення `null` і `undefined` рівні `==` один одному і не рівні будь-якому іншому значенню.
216217
- Будьте обережні, використовуючи оператори порівняння на зразок `>` чи `<` зі змінними, які можуть приймати значення `null/undefined`. Хорошою ідеєю буде зробити окрему перевірку на `null/undefined` для таких значень.
218+
=======
219+
- Comparison operators return a boolean value.
220+
- Strings are compared letter-by-letter in the "dictionary" order.
221+
- When values of different types are compared, they get converted to numbers (with the exclusion of a strict equality check).
222+
- The values `null` and `undefined` are equal `==` to themselves and each other, but do not equal any other value.
223+
- Be careful when using comparisons like `>` or `<` with variables that can occasionally be `null/undefined`. Checking for `null/undefined` separately is a good idea.
224+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3

1-js/02-first-steps/16-function-expressions/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ let sayHi = function() { // (1) створити
8282
alert( "Привіт" );
8383
};
8484

85-
let func = sayHi;
85+
let func = sayHi; //(2)
8686
// ...
8787
```
8888

1-js/03-code-quality/06-polyfills/article.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77

88
Тому це цілком звичайна ситуація, коли лише частина стандарту реалізована у самому рушії.
99

10+
<<<<<<< HEAD
1011
Хороша сторінка, щоб побачити поточний стан підтримки функцій мови, є тут <https://compat-table.github.io/compat-table/es6/> (вона велика, нам доведеться ще багато вивчати).
12+
=======
13+
A good page to see the current state of support for language features is <https://compat-table.github.io/compat-table/es6/> (it's big, we have a lot to study yet).
14+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
1115
1216
Як програмісти, ми б хотіли використовувати найновіші можливості. Чим більше хороших речей — тим краще!
1317

@@ -71,9 +75,13 @@ if (!Math.trunc) { // якщо немає такої функції
7175
7276
JavaScript дуже динамічна мова -- скрипти можуть додавати чи оновлювати функції, навіть якщо вони вбудовані.
7377
78+
<<<<<<< HEAD
7479
Є два цікавих поліфіла:
7580
- [core js](https://github.com/zloirock/core-js), що підтримує багато функціонала, дозволяє включати лише необхідні функції.
7681
82+
=======
83+
One interesting polyfill library is [core-js](https://github.com/zloirock/core-js), which supports a wide range of features and allows you to include only the ones you need.
84+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
7785
7886
## Підсумки
7987
@@ -83,8 +91,16 @@ JavaScript дуже динамічна мова -- скрипти можуть
8391
8492
Наприклад, пізніше (коли достатньо вивчите JavaScript), ви зможете налаштувати систему збору проєкту на основі [webpack](https://webpack.js.org/) із плагіном [babel-loader](https://github.com/babel/babel-loader).
8593
94+
<<<<<<< HEAD
8695
Ось хороші ресурси, де можна дізнатися поточний стан підтримки різного функціоналу:
8796
- <https://compat-table.github.io/compat-table/es6/> - для чистого JavaScript.
8897
- <https://caniuse.com/> - для браузерних функцій.
98+
=======
99+
Good resources that show the current state of support for various features:
100+
- <https://compat-table.github.io/compat-table/es6/> - for pure JavaScript.
101+
- <https://caniuse.com/> - for browser-related functions.
102+
103+
P.S. Google Chrome is usually the most up-to-date with language features, try it if a tutorial demo fails. Most tutorial demos work with any modern browser though.
104+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
89105
90106
P.S. Зазвичай браузер Google Chrome підтримує більшість найновіших функцій мови, спробуйте його, якщо демонстрація не працює. Більшість демонстрацій працюють із сучасними браузерами.

1-js/04-object-basics/04-object-methods/8-chain-calls/task.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ importance: 2
44

55
# Ланцюг викликів
66

7+
<<<<<<< HEAD
78
Існує об'єкт `ladder`, що дозволяє підійматися вгору-вниз:
9+
=======
10+
There's a `ladder` object that allows you to go up and down:
11+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
812
913
```js
1014
let ladder = {
@@ -21,7 +25,11 @@ let ladder = {
2125
};
2226
```
2327

28+
<<<<<<< HEAD
2429
Тепер, якщо нам потрібно зробити кілька викликів послідовно, можна зробити це так:
30+
=======
31+
Now, if we need to make several calls in sequence, we can do it like this:
32+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
2533
2634
```js
2735
ladder.up();
@@ -32,10 +40,18 @@ ladder.down();
3240
ladder.showStep(); // 0
3341
```
3442

43+
<<<<<<< HEAD
3544
Змініть код `up`, `down` і `showStep` так, щоб зробити доступним ланцюг викликів, наприклад:
45+
=======
46+
Modify the code of `up`, `down`, and `showStep` to make the calls chainable, like this:
47+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3
3648
3749
```js
3850
ladder.up().up().down().showStep().down().showStep(); // shows 1 then 0
3951
```
4052

53+
<<<<<<< HEAD
4154
Такий підхід широко використовується в бібліотеках JavaScript.
55+
=======
56+
Such an approach is widely used across JavaScript libraries.
57+
>>>>>>> d78b01e9833009fab534462e05c03cffc51bf0e3

0 commit comments

Comments
 (0)