Skip to content

Commit 6fa7740

Browse files
authored
Move code examples to uk (#178)
1 parent e7882dd commit 6fa7740

File tree

4 files changed

+84
-21
lines changed

4 files changed

+84
-21
lines changed

content/uk/2-2-Types.md

+9-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@
66

77
> Типи даних (Data Types)
88
9-
код
9+
```js
10+
const values = [5, 'Kiev', true, { size: 10 }, (a) => ++a];
11+
12+
const types = values.map((x) => typeof x);
13+
console.log({ types });
14+
```
1015

1116
> Посилання (Reference)
1217
@@ -22,7 +27,9 @@
2227
2328
Прапорець це значення (часто бульового або перелічуваного типу), що визначає стан чогось, іншої програмної абстракції, екземпляра, процесу, пристрою. Наприклад, ознака закриття з'єднання, ознака завершення пошуку структури даних і т.д. Наприклад:
2429

25-
код
30+
```js
31+
let flagName = false;
32+
```
2633

2734
> Рядок (String)
2835

content/uk/2-3-Blocks.md

+12-2
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,25 @@
1010
1111
Вираз складається з ідентифікаторів, значень, операторів та виклику функцій. Приклад:
1212

13-
код
13+
```js
14+
(len - 1) * f(x, INTERVAL);
15+
```
1416

1517
> Блок коду (Code block) – логічно пов'язана група інструкцій чи операторів.
1618
1719
Блоки створюють область видимості. Блоки можуть бути вкладені. Приклади різних мов: {}, (+ a b), begin end, в Python блоки виділяються відступами.
1820

1921
> Цикл (Loop) – багаторазове виконання блоку операторів.
2022
21-
код
23+
```js
24+
const MAX_VALUE = 10;
25+
26+
console.log('Begin');
27+
for (let i = 0; i < MAX_VALUE; i++) {
28+
console.dir({ i, date: new Date() });
29+
}
30+
console.log('The end');
31+
```
2232

2333
> Умова (Conditional statements) - синтаксична конструкція, що дозволяє виконати різні дії або повертає різні значення (тернарний оператор) залежно від логічного виразу (що повертає true або false).
2434

content/uk/2-4-Context.md

+24-16
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,33 @@
44
55
Область видимості - частина коду, з якої "видно" ідентифікатор. Розглянемо приклад:
66

7-
код
7+
```js
8+
const level = 1;
9+
10+
const f = () => {
11+
const level = 2;
12+
{
13+
const level = 3;
14+
console.log(level); // 3
15+
}
16+
console.log(level); // 2
17+
};
18+
```
819

920
У сучасному стандарті JavaScript область видимості породжується функцією або будь-яким блоком операторів, що мають фігурні дужки {}. У Python scope породжується лише функціями. Порівняйте цей код із попереднім прикладом:
1021

11-
код
22+
```py
23+
level = 1
24+
25+
def f():
26+
level = 2
27+
if level == 2:
28+
level = 3
29+
print(level) // 3
30+
print(level) // 3
31+
32+
f()
33+
```
1234

1335
> Лексичний контекст (Lexical environment)
1436
@@ -23,17 +45,3 @@
2345
> Глобальний контекст (Global context)
2446
2547
Якщо ідентифікатор не знаходиться у жодному з вкладених лексичних контекстів, то буде виконано його пошук у глобальному об'єкті-довіднику, який є глобальним контекстом (JavaScript `global` або `window`).
26-
27-
> Побічні ефекти (Side effects)
28-
29-
> Функція вищого порядку (Higher-order Function)
30-
31-
1. Якщо функція передається в іншу функцію як аргумент, це колбек.
32-
2. Якщо функція повертається як результат, це фабрика функцій на замиканнях.
33-
3. Якщо функція, що повертається, має ту ж семантику, що й одержувана в аргументах, але з додатковою (розширеною) поведінкою, то це функція-обгортка.
34-
4. Рідко буває, що функція, що повертається, не пов'язана з функцією з аргументів, або пов'язана не прямо, а також має іншу семантику і функцією-оберткою вона не є.
35-
5. Якщо виході клас чи функція-конструктор, це фабрики класів і прототипів відповідно.
36-
37-
> Функція-обгортка (Wrapper)
38-
39-
Функція, яка обертає іншу функцію (іноді об'єкт, інтерфейс чи функціональний об'єкт), додаючи додаткову поведінку. Можна обернути цілий інтерфейс API і навіть асинхронну функцію разом з колбеками (якщо відомий контракт).

content/uk/2-5-Procedure.md

+39-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,42 @@
1212

1313
> Метод – функція або процедура, пов'язана з об'єктом чи класом.
1414
15-
код
15+
```js
16+
{
17+
a: 10,
18+
b: 10,
19+
sum() {
20+
return this.a + this.b;
21+
}
22+
}
23+
```
24+
25+
```js
26+
const colorer = (s, color) => `\x1b[3${color}m${s}\x1b[0m`;
27+
28+
const colorize = (name) => {
29+
let res = '';
30+
const letters = name.split('');
31+
let color = 0;
32+
for (const letter of letters) {
33+
res += colorer(letter, color++);
34+
if (color > COLORS.length) color = 0;
35+
}
36+
return res;
37+
};
38+
39+
const greetings = (name) =>
40+
name.includes('Augustus')
41+
? `${SALUTATION}, ${colorize(name)}!`
42+
: `Hello, ${name}!`;
43+
```
44+
45+
> Usage
46+
47+
```js
48+
const fullName = 'Marcus Aurelius Antoninus Augustus';
49+
console.log(greetings(fullName));
50+
51+
const shortName = 'Marcus Aurelius';
52+
console.log(greetings(shortName));
53+
```

0 commit comments

Comments
 (0)