HTML Diff
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) =&gt; {} // упаковка множества входящих параметров в массив params</li>
16 <ul><li>const func = (a, ...params) =&gt; {} // упаковка множества входящих параметров в массив 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>(() =&gt; console.log('I love Hexlet'))(); вызов функции один раз</li>
20 <li>(() =&gt; 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) =&gt; acc + user.amount, 0); Или же reduce(callback(acc, elem), acc)</li>
26 <li>Метод reduce() возвращает аккумулятор своей работы const sum = users.reduce((acc, user) =&gt; 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>