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
+18-19
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@
12
12
13
13
Щоб створити змінну, використовуйте ключове слово `let`.
14
14
15
-
Цей рядок нижче створить (інакше кажучи, *оголосить*) змінну з ім'ям "message":
15
+
Цей рядок нижче створить (інакше кажучи, *оголосить*) змінну з ім’ям "message":
16
16
17
17
```js
18
18
let message;
@@ -28,7 +28,7 @@ message = 'Привіт'; // збереження рядка 'Привіт' у
28
28
*/!*
29
29
```
30
30
31
-
Тепер рядок збережено в частину пам'яті, яка зв'язана з цією змінною. Ми можемо отримати доступ до даних, використовуючи ім'я змінної:
31
+
Тепер рядок збережено в частину пам’яті, яка зв’язана з цією змінною. Ми можемо отримати доступ до даних, використовуючи ім’я змінної:
32
32
33
33
```js run
34
34
let message;
@@ -97,7 +97,7 @@ let user = 'Іван'
97
97
98
98
Ми легко зрозуміємо концепцію "змінної", якщо уявимо її у вигляді "коробки" для даних з унікальною назвою на наклейці.
99
99
100
-
Наприклад, змінну `message` можна уявити як коробку з підписом `"Повідомлення"` зі значенням `"Привіт!"` всередині:
100
+
Наприклад, змінну `message` можна уявити як коробку з написом `"Повідомлення"` зі значенням `"Привіт!"` всередині:
101
101
102
102

103
103
@@ -179,8 +179,8 @@ let test123;
179
179
Ці імена також допустимі:
180
180
181
181
```js run untrusted
182
-
let $ =1; // оголошено змінну з ім'ям "$"
183
-
let _ =2; // а тепер змінна з ім'ям "_"
182
+
let $ =1; // оголошено змінну з ім’ям "$"
183
+
let _ =2; // а тепер змінна з ім’ям "_"
184
184
185
185
alert($ + _); // 3
186
186
```
@@ -198,14 +198,14 @@ let my-name; // дефіс '-' недопустимий в імені
198
198
```
199
199
200
200
````smart header="Не-латинські букви дозволені, але не рекомендуються"
201
-
Можна використовувати будь-яку мову, включно з кирилицею або навіть ієрогліфами, наприклад:
201
+
Іменувати змінні можна будь-якими мовами, включно з кирилицею або навіть ієрогліфами, наприклад:
202
202
203
203
```js
204
204
let назва = '...';
205
205
let 我 = '...';
206
206
```
207
207
208
-
Технічно тут немає помилки. Такі імена дозволені, проте є міжнародна традиція використовувати англійську мову в іменах змінних (наприклад, `yaLyublyuUkrainu` => `iLoveUkraine`). Навіть якщо ми пишемо маленький скрипт, у нього може бути тривале життя попереду. Людям з інших країн, можливо, доведеться прочитати його не один раз.
208
+
Технічно тут немає помилки. Такі імена дозволені, проте є міжнародна традиція використовувати англійську мову в іменах змінних (наприклад, `yaLyublyuUkrainu` => `iLoveUkraine`). Навіть якщо ми пишемо маленький скрипт, у нього може бути тривале життя попереду. Можливо, людям з інших країн колись доведеться прочитати його.
209
209
````
210
210
211
211
````warn header="Зарезервовані слова"
@@ -262,7 +262,6 @@ myBirthday = '01.01.2001'; // помилка, не можна перевизна
262
262
263
263
Коли програміст впевнений, що змінна ніколи не буде змінюватися, він може оголосити її через `const`, що гарантує постійність і буде зрозумілим для кожного.
264
264
265
-
266
265
### Константи в верхньому регістрі
267
266
268
267
Широко поширена практика використання констант як псевдонімів для значень, які важко запам’ятати і які відомі до початку виконання скрипта.
@@ -285,20 +284,20 @@ alert(color); // #FF7F00
285
284
Переваги:
286
285
287
286
- `COLOR_ORANGE` набагато легше запам’ятати, ніж `"#FF7F00"`.
288
-
- Набагато легше допустити помилку в `"#FF7F00"`, ніж під час введення `COLOR_ORANGE`.
287
+
- Набагато легше припуститися помилки в `"#FF7F00"`, ніж під час введення `COLOR_ORANGE`.
289
288
- Під час читання коду `COLOR_ORANGE` набагато зрозуміліше, ніж `#FF7F00`.
290
289
291
-
Коли ми маємо використовувати для констант великі букви, а коли звичайні? Давайте це з'ясуємо.
290
+
Коли ми маємо використовувати для констант великі букви, а коли звичайні? Давайте це з’ясуємо.
292
291
293
-
Назва "константа" лише означає, що змінна ніколи не зміниться. Але є константи, які відомі нам до виконання скрипта (наприклад, шістнадцяткове значення для червоного кольору), а є константи, які *вираховуються* в процесі виконання скрипта, але не змінюються після їхнього початкового присвоєння.
292
+
Назва "константа" лише означає, що змінна ніколи не зміниться. Деякі константивідомі нам до виконання скрипту (наприклад, шістнадцяткове значення для червоного кольору), а деякі константи*вираховуються* в процесі виконання скрипту, але не змінюються після їхнього початкового присвоєння.
294
293
295
294
Наприклад:
296
295
297
296
```js
298
297
const pageLoadTime = /* час, потрачений на завантаження вебсторінки */;
299
298
```
300
299
301
-
Значення `pageLoadTime` невідоме до завантаження сторінки, тому її ім'я записано звичайними, а не великими буквами. Але це все ще константа, тому що вона не змінює значення після присвоєння.
300
+
Значення `pageLoadTime` невідоме до завантаження сторінки, тому її ім’я записано звичайними, а не великими буквами. Але це все ще константа, тому що вона не змінює значення після присвоєння.
302
301
303
302
Інакше кажучи, константи з великими буквами використовуються як псевдоніми для "жорстко закодованих" значень.
304
303
@@ -308,27 +307,27 @@ const pageLoadTime = /* час, потрачений на завантаженн
308
307
309
308
Такі імена повинні мати чіткий і зрозумілий сенс, який описує дані, що в них зберігаються.
310
309
311
-
Іменування змінних -- одна з найважливіших і найскладніших навичок у програмуванні. Швидкий перегляд змінних може показати, чи код був написаний новачком чи досвідченим розробником.
310
+
Іменування змінних -- одна з найважливіших і найскладніших навичок у програмуванні. Швидкий погляд на імена змінних може показати, який код був написаний початківцем, а який досвідченим розробником.
312
311
313
312
У реальному проєкті більшість часу тратиться на змінення і розширення наявної кодової бази, а не на написання чогось цілком нового. Коли ми повертаємося до якогось коду після виконання чогось іншого впродовж тривалого часу, набагато легше знайти інформацію, яку добре позначено. Або, інакше кажучи, коли змінні мають хороші імена.
314
313
315
-
Будь ласка, приділіть час на обдумування правильного імені для змінної перед її оголошенням. Робіть так, і будете винагороджені.
314
+
Будь ласка, приділяйте час на обдумування правильного імені для змінної перед її оголошенням. Робіть так, і будете винагороджені.
316
315
317
316
Декілька хороших правил:
318
317
319
-
- Використовуйте імена, які легко прочитати, наприклад, `userName` або `shoppingCart`.
320
-
- Уникайте використання абревіатур або коротких імен, таких як `a`, `b`, `c`, окрім тих випадків, коли ви точно знаєте, що так потрібно.
318
+
- Використовуйте імена, які легко прочитати, як-от `userName` або `shoppingCart`.
319
+
- Уникайте використання абревіатур або коротких імен, таких як `a`, `b` та `c`, окрім тих випадків, коли ви точно знаєте, що так потрібно.
321
320
- Робіть імена максимально описовими і лаконічними. Наприклад, такі імена погані: `data` і `value`. Такі імена нічого не говорять. Їх можна використовувати лише тоді, коли з контексту очевидно, на які дані або значення посилається змінна.
322
-
- Погоджуйте з вашою командою, які терміни будуть використовуватися. Якщо відвідувач сайту називається "user", тоді ми маємо давати відповідні імена іншим пов'язаним змінним: `currentUser` або `newUser`, замість `currentVisitor` або `newManInTown`.
321
+
- Погоджуйте з вашою командою (та з самим собою), які терміни будуть використовуватися у проєкті. Якщо відвідувач сайту називається "user", тоді ми маємо давати відповідні імена іншим пов’язаним змінним: `currentUser` або `newUser`, замість `currentVisitor` або `newManInTown`.
323
322
324
323
Звучить легко? Це дійсно так, проте на практиці створення зрозумілих і коротких імен -- рідкість. Дійте.
325
324
326
-
```smart header="Перевикористовувати чи створювати?"
325
+
```smart header="Повторно використовувати чи створювати нові?"
327
326
І остання примітка. Є ліниві програмісти, які замість оголошення нових змінних повторно використовують наявні.
328
327
329
328
У результаті їхні змінні схожі на коробки, в які люди кидають різні речі, не змінюючи на них наклейки. Що зараз міститься всередині коробки? Хто знає? Нам необхідно підійти поближче і перевірити.
330
329
331
-
Такі програмісти економлять трішки часу на оголошенні змінних, але втрачають вдесятеро більше під час відлагодження.
330
+
Такі програмісти економлять трішки часу на оголошенні змінних, але втрачають вдесятеро більше під час налагодження.
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/06-polyfills/article.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@
7
7
8
8
Тому це цілком звичайна ситуація, коли лише частина стандарту реалізована у самому рушії.
9
9
10
-
Хороша сторінка, щоб побачити поточний стан підтримки функцій мови, є тут <https://kangax.github.io/compat-table/es6/> (вона велика, нам доведеться ще багато вивчати).
10
+
Хороша сторінка, щоб побачити поточний стан підтримки функцій мови, є тут <https://compat-table.github.io/compat-table/es6/> (вона велика, нам доведеться ще багато вивчати).
11
11
12
12
Як програмісти, ми б хотіли використовувати найновіші можливості. Чим більше хороших речей — тим краще!
13
13
@@ -85,7 +85,7 @@ JavaScript дуже динамічна мова -- скрипти можуть
85
85
Наприклад, пізніше (коли достатньо вивчите JavaScript), ви зможете налаштувати систему збору проєкту на основі [webpack](https://webpack.js.org/) із плагіном [babel-loader](https://github.com/babel/babel-loader).
86
86
87
87
Ось хороші ресурси, де можна дізнатися поточний стан підтримки різного функціоналу:
88
-
- <https://kangax.github.io/compat-table/es6/> - для чистого JavaScript.
88
+
- <https://compat-table.github.io/compat-table/es6/> - для чистого JavaScript.
89
89
- <https://caniuse.com/> - для браузерних функцій.
90
90
91
91
P.S. Зазвичай браузер Google Chrome підтримує більшість найновіших функцій мови, спробуйте його, якщо демонстрація не працює. Більшість демонстрацій працюють із сучасними браузерами.
0 commit comments