You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/04-variables/article.md
+48Lines changed: 48 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -88,16 +88,26 @@ let user = 'Іван'
88
88
*!*var*/!* message ='Привіт';
89
89
```
90
90
91
+
<<<<<<< HEAD
91
92
Ключове слово `var`*майже* таке, як `let`. Воно теж оголошує змінну, але дещо іншим, "застарілим" способом.
92
93
93
94
Є деякі відмінності між `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
94
100
````
95
101
96
102
## Аналогія з життя
97
103
98
104
Ми легко зрозуміємо концепцію "змінної", якщо уявимо її у вигляді "коробки" для даних з унікальною назвою на наклейці.
99
105
106
+
<<<<<<< HEAD
100
107
Наприклад, змінну `message` можна уявити як коробку з написом `"Повідомлення"` зі значенням `"Привіт!"` всередині:
108
+
=======
109
+
For instance, the variable `message` can be imagined as a box labelled `"message"` with the value `"Hello!"` in it:
110
+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
101
111
102
112

103
113
@@ -197,15 +207,24 @@ let my-name; // дефіс '-' недопустимий в імені
197
207
Змінні з іменами `apple` і `APPLE` -- це дві різні змінні.
198
208
```
199
209
210
+
<<<<<<< HEAD
200
211
````smart header="Нелатинські букви дозволені, але не рекомендуються"
201
212
Можна використовувати будь-яку мову, включно з кирилицею або навіть ієрогліфами, наприклад:
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
202
217
203
218
```js
204
219
let назва = '...';
205
220
let 我 = '...';
206
221
```
207
222
223
+
<<<<<<< HEAD
208
224
Технічно тут немає помилки. Такі імена дозволені, проте є міжнародна традиція використовувати англійську мову в іменах змінних (наприклад, `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.
myBirthday = '01.01.2001'; // помилка, не можна перевизначати константу!
261
280
```
262
281
282
+
<<<<<<< HEAD
263
283
Коли програміст впевнений, що змінна ніколи не буде змінюватися, він може оголосити її через `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
264
287
265
288
### Константи в верхньому регістрі
266
289
290
+
<<<<<<< HEAD
267
291
Широко поширена практика використання констант як псевдонімів для значень, які важко запам’ятати і які відомі до початку виконання скрипту.
292
+
=======
293
+
There is a widespread practice to use constants as aliases for difficult-to-remember values that are known before execution.
294
+
>>>>>>> 3d7abb9cc8fa553963025547717f06f126c449b6
268
295
269
296
Такі константи пишуться в верхньому регістрі з використанням підкреслень.
270
297
@@ -289,15 +316,23 @@ alert(color); // #FF7F00
289
316
290
317
Коли ми маємо використовувати для констант великі букви, а коли звичайні? Давайте це з’ясуємо.
291
318
319
+
<<<<<<< HEAD
292
320
Назва "константа" лише означає, що змінна ніколи не зміниться. Але є константи, які відомі нам до виконання скрипту (наприклад, шістнадцяткове значення для червоного кольору), а є константи, які *вираховуються* в процесі виконання скрипту, але не змінюються після їхнього початкового присвоєння.
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
293
324
294
325
Наприклад:
295
326
296
327
```js
297
328
const pageLoadTime = /* час, потрачений на завантаження вебсторінки */;
298
329
```
299
330
331
+
<<<<<<< HEAD
300
332
Значення `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
301
336
302
337
Інакше кажучи, константи з великими буквами використовуються як псевдоніми для "жорстко закодованих" значень.
303
338
@@ -307,18 +342,31 @@ const pageLoadTime = /* час, потрачений на завантаженн
307
342
308
343
Такі імена повинні мати чіткий і зрозумілий сенс, який описує дані, що в них зберігаються.
309
344
345
+
<<<<<<< HEAD
310
346
Іменування змінних -- одна з найважливіших і найскладніших навичок у програмуванні. Швидкий погляд на імена змінних може показати, який код був написаний початківцем, а який досвідченим розробником.
311
347
312
348
У реальному проєкті більшість часу тратиться на змінення і розширення наявної кодової бази, а не на написання чогось цілком нового. Коли ми повертаємося до якогось коду після виконання чогось іншого впродовж тривалого часу, набагато легше знайти інформацію, яку добре позначено. Або, інакше кажучи, коли змінні мають хороші імена.
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
313
354
314
355
Будь ласка, приділяйте час на обдумування правильного імені для змінної перед її оголошенням. Робіть так, і будете винагороджені.
315
356
316
357
Декілька хороших правил:
317
358
359
+
<<<<<<< HEAD
318
360
- Використовуйте імена, які легко прочитати, як-от `userName` або `shoppingCart`.
319
361
- Уникайте використання абревіатур або коротких імен, таких як `a`, `b` та `c`, окрім тих випадків, коли ви точно знаєте, що так потрібно.
320
362
- Робіть імена максимально описовими і лаконічними. Наприклад, такі імена погані: `data` і `value`. Такі імена нічого не говорять. Їх можна використовувати лише тоді, коли з контексту очевидно, на які дані або значення посилається змінна.
321
363
- Погоджуйте з вашою командою (та з самим собою), які терміни будуть використовуватися у проєкті. Якщо відвідувач сайту називається "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
322
370
323
371
Звучить легко? Це дійсно так, проте на практиці створення зрозумілих і коротких імен -- рідкість. Дійте.
Через те, що тип `BigInt` рідко використовується, ми не розглядатимемо його в цьому розділі, проте ми винесли його в окремий розділ <info:bigint>. Прочитайте його, якщо вам потрібні такі великі числа.
96
96
97
+
<<<<<<<HEAD
97
98
98
99
```smart header="Проблеми із сумісністю"
99
100
Цієї миті, підтримка типу `BigInt` є в останніх версіях Firefox/Chrome/Edge/Safari, але не в IE.
На сайті *MDN* є [таблиця сумісності](https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Сумісність_з_веб-переглядачами), де показано, які версії браузерів підтримують тип `BigInt`.
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/06-polyfills/article.md
+16Lines changed: 16 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,11 @@
7
7
8
8
Тому це цілком звичайна ситуація, коли лише частина стандарту реалізована у самому рушії.
9
9
10
+
<<<<<<< HEAD
10
11
Хороша сторінка, щоб побачити поточний стан підтримки функцій мови, є тут <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
11
15
12
16
Як програмісти, ми б хотіли використовувати найновіші можливості. Чим більше хороших речей — тим краще!
13
17
@@ -71,9 +75,13 @@ if (!Math.trunc) { // якщо немає такої функції
71
75
72
76
JavaScript дуже динамічна мова -- скрипти можуть додавати чи оновлювати функції, навіть якщо вони вбудовані.
73
77
78
+
<<<<<<< HEAD
74
79
Є два цікавих поліфіла:
75
80
- [core js](https://github.com/zloirock/core-js), що підтримує багато функціонала, дозволяє включати лише необхідні функції.
76
81
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
77
85
78
86
## Підсумки
79
87
@@ -83,8 +91,16 @@ JavaScript дуже динамічна мова -- скрипти можуть
83
91
84
92
Наприклад, пізніше (коли достатньо вивчите JavaScript), ви зможете налаштувати систему збору проєкту на основі [webpack](https://webpack.js.org/) із плагіном [babel-loader](https://github.com/babel/babel-loader).
85
93
94
+
<<<<<<< HEAD
86
95
Ось хороші ресурси, де можна дізнатися поточний стан підтримки різного функціоналу:
87
96
- <https://compat-table.github.io/compat-table/es6/> - для чистого JavaScript.
88
97
- <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
89
105
90
106
P.S. Зазвичай браузер Google Chrome підтримує більшість найновіших функцій мови, спробуйте його, якщо демонстрація не працює. Більшість демонстрацій працюють із сучасними браузерами.
0 commit comments