Skip to content

Commit 31da95c

Browse files
committed
merging all conflicts
2 parents 254179a + 3d7abb9 commit 31da95c

File tree

33 files changed

+1162
-62
lines changed

33 files changed

+1162
-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/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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
105109

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

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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
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+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6

1-js/04-object-basics/09-object-toprimitive/article.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,11 @@ let obj = {
253253
}
254254
};
255255

256+
<<<<<<< HEAD
256257
alert(obj + 2); // 22 ("2" + 2), перетворення до примітиву повернуло рядок => Конкатенація
258+
=======
259+
alert(obj + 2); // "22" ("2" + 2), conversion to primitive returned a string => concatenation
260+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
257261
```
258262

259263
## Підсумки

0 commit comments

Comments
 (0)