0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<h2>Содержание</h2>
1
<h2>Содержание</h2>
2
<ul><li><a>Chapter 2: Чистые функции</a></li>
2
<ul><li><a>Chapter 2: Чистые функции</a></li>
3
<li><a>Chapter 3: Разделение команд и запросов</a></li>
3
<li><a>Chapter 3: Разделение команд и запросов</a></li>
4
<li><a>Chapter 4: Оператор Rest</a></li>
4
<li><a>Chapter 4: Оператор Rest</a></li>
5
<li><a>Chapter 7: Объекты первого класса</a></li>
5
<li><a>Chapter 7: Объекты первого класса</a></li>
6
<li><a>Chapter 8: Функции высшего порядка</a></li>
6
<li><a>Chapter 8: Функции высшего порядка</a></li>
7
<li><a>Chapter 13: Парадигмы программирования</a></li>
7
<li><a>Chapter 13: Парадигмы программирования</a></li>
8
</ul><h2>Chapter 2: Чистые функции</h2>
8
</ul><h2>Chapter 2: Чистые функции</h2>
9
<p>Детерминированность: Функция, которая при одних и тех же входных параметрах выдает одинаковый результат, не должна зависеть от внешних переменных.</p>
9
<p>Детерминированность: Функция, которая при одних и тех же входных параметрах выдает одинаковый результат, не должна зависеть от внешних переменных.</p>
10
<p>Side-effect: Функции с побочными эффектами, включающие запись/чтение/вывод на экран Pure-function: Детерминированная функция без побочных эффектов</p>
10
<p>Side-effect: Функции с побочными эффектами, включающие запись/чтение/вывод на экран Pure-function: Детерминированная функция без побочных эффектов</p>
11
<h2>Chapter 3: Разделение команд и запросов</h2>
11
<h2>Chapter 3: Разделение команд и запросов</h2>
12
<ul><li>Каждая функция является либо запросом(query), либо командой, и выполняет действие(action). Команда всегда связана с выполнением побочных эффектов, а чистые функции возможны только для запросов.</li>
12
<ul><li>Каждая функция является либо запросом(query), либо командой, и выполняет действие(action). Команда всегда связана с выполнением побочных эффектов, а чистые функции возможны только для запросов.</li>
13
<li>Команда: может возвращать только успешность своего завершения true/false</li>
13
<li>Команда: может возвращать только успешность своего завершения true/false</li>
14
<li>Запрос: "Задавая вопрос, не изменяй ответ": запрос не должен изменять входные данные</li>
14
<li>Запрос: "Задавая вопрос, не изменяй ответ": запрос не должен изменять входные данные</li>
15
</ul><h2>Chapter 4: Оператор Rest</h2>
15
</ul><h2>Chapter 4: Оператор Rest</h2>
16
<ul><li>const func = (a, ...params) => {} // упаковка множества входящих параметров в массив params</li>
16
<ul><li>const func = (a, ...params) => {} // упаковка множества входящих параметров в массив params</li>
17
</ul><h2>Chapter 7: Объекты первого класса</h2>
17
</ul><h2>Chapter 7: Объекты первого класса</h2>
18
<ul><li>Объекты первого класса: элементы, которые могут быть переданы в функции, возвращены из функций и присвоены переменным</li>
18
<ul><li>Объекты первого класса: элементы, которые могут быть переданы в функции, возвращены из функций и присвоены переменным</li>
19
<li><strong>В JavaScript функции - это объекты первого рода.</strong></li>
19
<li><strong>В JavaScript функции - это объекты первого рода.</strong></li>
20
<li>(() => console.log('I love Hexlet'))(); вызов функции один раз</li>
20
<li>(() => console.log('I love Hexlet'))(); вызов функции один раз</li>
21
</ul><h2>Chapter 8: Функции высшего порядка</h2>
21
</ul><h2>Chapter 8: Функции высшего порядка</h2>
22
<ul><li>Функции высшего порядка - это функции, которые либо принимают, либо возвращают другие функции, либо делают всё сразу.</li>
22
<ul><li>Функции высшего порядка - это функции, которые либо принимают, либо возвращают другие функции, либо делают всё сразу.</li>
23
</ul><h3>Map/Filter/Reduce:</h3>
23
</ul><h3>Map/Filter/Reduce:</h3>
24
<ul><li>Метод<strong>map()</strong>создаёт новый массив с результатом вызова указанной функции для каждого элемента массива. Возвращает отображаемый элемент в новом виде.</li>
24
<ul><li>Метод<strong>map()</strong>создаёт новый массив с результатом вызова указанной функции для каждого элемента массива. Возвращает отображаемый элемент в новом виде.</li>
25
<li>Метод<strong>filter()</strong>callback должен вернуть предиктат true/false</li>
25
<li>Метод<strong>filter()</strong>callback должен вернуть предиктат true/false</li>
26
<li>Метод reduce() возвращает аккумулятор своей работы const sum = users.reduce((acc, user) => acc + user.amount, 0); Или же reduce(callback(acc, elem), acc)</li>
26
<li>Метод reduce() возвращает аккумулятор своей работы const sum = users.reduce((acc, user) => acc + user.amount, 0); Или же reduce(callback(acc, elem), acc)</li>
27
</ul><h2>Chapter 13: Парадигмы программирования</h2>
27
</ul><h2>Chapter 13: Парадигмы программирования</h2>
28
<ul><li><strong>Императивная</strong>отвечает на вопрос<strong>КАК</strong>- использует переменные, циклы, присваивания</li>
28
<ul><li><strong>Императивная</strong>отвечает на вопрос<strong>КАК</strong>- использует переменные, циклы, присваивания</li>
29
<li><strong>Декларативная</strong>отвечает на вопрос<strong>ЧТО сделать</strong>- использует логические цепочки и связывание вместо присваивания</li>
29
<li><strong>Декларативная</strong>отвечает на вопрос<strong>ЧТО сделать</strong>- использует логические цепочки и связывание вместо присваивания</li>
30
</ul>
30
</ul>