Дисциплины - Проектирование динамических страниц

Основы JavaScript в Проектировании динамических страниц - Императивный и декларативный подходы в функциональном программировании

Извенстно два подхода в функциональном программировании: императивное и декларативное программирование. Разницу между ними рассмотрим на примере.

Итак, имеется строка str, которую нужно преобразовать для передачи через адресную строку.

var str = "String to url";

Императивный (алгоритмический) подход:

var url = "";
for(var i=0; i

Декларативный подход (инкапсуляция):

const url = str.replace(/ /g, "_");

При императивном подходе интерпретатор получает подробные инструкции, как выполнить данную программу. Это самый распространённый способ написания программ.

При декларативном подходе - описание программы отделяется от её вычислений. Стоит отметить, что декларативный подход имеет ряд преимуществ: понятийные имена вызываемых функций и скрытую реализацию.

Рассмотрим еще одну задачу. И сравним два подхода в решении: императивный и декларативный подходы.

Имеется массив, в котором необходимо возвести в квадрат каждый элемент этого массива.

 var arr = [0,1,2,3,4,5,6,7,8,9];

Императивная программа выглядит следующим образом:

for(let i=0; i
При декларативном подходе, вместо цикла for мы будем использовать функцию map
let newArr = arr.map((num)=>{return Math.pow(num, 2)}) 

Тоже, но короче (в коротких стрелочных функциях, если возвращаемое значение очевидно, мы можем опустить как фигурные скопки {} тела функции, так и ключевое слово return):

let newArr4 = arr.map((num)=>Math.pow(num, 2));

Как видите, мы вообще можем исключить циклы из программных решений. А зачем это делать? Дело в том, что цикл является имеративной управляющей структурой и с трудом поддаётся повторному использованию и встраиванию в другие операции. Кроме того, чистые декларативные функции позволяют избежать побочного эффекта - изменяемости первоначальных данных.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
00421-00422 ИИТ БГУИР
00423 ИИТ БГУИР
10421-10422 ИИТ БГУИР
10423 БГУИР
20421 БГУИР
30421 БГУИР
30423 БГУИР


Изображения Видео

1. JavaScript. Функциональное программирование. Лекция 2. Преобразование данных <iframe width="560" height="315" src="https://www.youtube.com/embed/EBKzRg4aTro" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
2. JavaScript. Функциональное программирование. Лекция 2 (продолжение) <iframe width="560" height="315" src="https://www.youtube.com/embed/phyt4PFk6Pc" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
3. HTML5 http://erud.by/files/books/HTML5.docx
4. ООП в JavaScript http://erud.by/object_orient_program/586
5. Фоновое видео jQuery http://johnpolacek.github.io/BigVideo.js
Учебная программа