Skip to content

Commit 8135253

Browse files
authored
Update 2-1-Identifiers.md (#144)
1 parent 7b75c75 commit 8135253

File tree

1 file changed

+47
-20
lines changed

1 file changed

+47
-20
lines changed

content/uk/2-1-Identifiers.md

+47-20
Original file line numberDiff line numberDiff line change
@@ -4,53 +4,80 @@
44

55
> Оголошення та присвоєння (assignment)
66
7-
код
7+
```js
8+
let migrationYear = 622;
9+
```
810

911
Цей запис на JavaScript і тут `migrationYear` — ім'я ідентифікатора, `=` це оператор присвоєння, `622` — значення, а `let` означає, що значення може бути переприсвоєно, тобто, змінено.
1012

1113
На C і C++ аналогічний код виглядатиме так:
1214

13-
код
14-
15+
```c
16+
int migrationYear = 622; // тут int обозначает целый тип
17+
```
1518

1619
У Python, як і JavaScript, оператор присвоєння не вимагає вказувати тип, він визначається з типу літералу. А при присвоєнні ми не можемо заборонити переприсвоєння ідентифікатору іншого значення.
1720

18-
код
21+
```py
22+
migrationYear = 622
23+
```
1924

2025
Операція присвоєння у багатьох мовах повертає значення (має поведінку виразу). Таким чином, можна написати:
2126

22-
код
23-
24-
27+
```js
28+
let year;
29+
const migration = (year = 622); // теперь оба идентификатора
30+
console.log({ migration, year }); // имеют значение 622
31+
```
2532

2633
Але такий синтаксис погано читається і може ввести в оману, як і завдання кількох ідентифікаторів через кому:
2734

28-
код
35+
```
36+
let year = 622, migration = 'Hijrah', i, counter = 0;
37+
```
2938

3039
Економія в коді це добре, але не заощаджуйте літери та рядки за рахунок читабельності коду. Натомість краще написати:
3140

32-
код
33-
41+
```js
42+
let year = 622;
43+
let migration = 'Hijrah';
44+
let i;
45+
let counter = 0;
46+
```
3447

3548
А ще краще відразу вирішити, які ідентифікатори не змінюватимуть свого значення і задати їх через `const`:
3649

37-
код
50+
```js
51+
const year = 622;
52+
const migration = 'Hijrah';
53+
let i;
54+
let counter = 0;
55+
```
3856

3957
> Змінні та константи
4058
4159
У повсякденному спілкуванні навіть професіонали часто плутають поняття, називаючи константу змінною, адже слово ідентифікатор занадто довге, а слово константа занадто багатозначне. Це трапляється з локальними константами, які ми називаємо у стилі `lowerCamel`, наприклад, усередині функцій. Їх значення може бути різним за різних викликів функції, а є глобальні значення, яких однакове у будь-якому місці програми або файлу, і ми називаємо їх у стилі `UPPER_SNAKE`.
4260

43-
код
61+
```js
62+
const WATCH_TIMEOUT = 5000; // Глобальная константа
63+
```
4464

45-
код
65+
```js
66+
const cityName = 'Beijing'; // Локальная константа
67+
```
4668

47-
код
69+
```js
70+
let distance = 0; // Переменная
71+
```
4872

4973
Ми можемо змінювати значення змінної на відміну від константи, а для деяких мов, як JavaScript і Python, можемо змінювати і тип, але це сильно погіршуватиме читаність коду, наприклад:
5074

51-
код
52-
53-
75+
```js
76+
let migration = 'Hijrah'; // используем переменную первый раз
77+
console.log(migration); // вывод строки
78+
migration = 622; // используем повторно для других целей
79+
console.log(migration); // вывод числа
80+
```
5481

5582
> Літерал (Literal) — запис значення коду програми
5683
@@ -70,7 +97,8 @@
7097
7198
Тут багато конструкцій знайомі, але є й нові (функція, цикл, умова), вони будуть докладніше розглянуті в наступних розділах, хоча їхнє просте використання не складно прочитати і зрозуміти вже зараз.
7299

73-
код
100+
```js
101+
'use strict';
74102

75103
const MAX_PURCHASE = 2000; // Глобальна константа
76104

@@ -92,10 +120,9 @@ const purchase = [1500, 100, 10, 50];
92120
// Викликаємо функцію обчислення суми та передаємо їй аргумент
93121
// З функції значення аргументу буде доступним через параметр
94122
const total = calculateTotal(purchase);
95-
//Результат записуємо в локальну константу
123+
// Результат записуємо в локальну константу
96124
// Якщо сума не перевищила максимальної, то виводимо її
97125
if (total <= MAX_PURCHASE) {
98126
console.log({total}); // Виводить: {total: 1660}
99127
}
100128
```
101-

0 commit comments

Comments
 (0)