المعرفة:: JavaScript الحالة::مؤرشفة المراجع:: The Complete JavaScript Course 2022 From Zero to Expert
Imperative Vs. Declarative Code
There are two fundamentally different ways of writing code (paradigms):
Imperative
- Programmer explains “HOW to do things”.
- We explain the computer every single step it has to follow to achieve a result.
- Example: Step-by-step recipe of a cake.
Declarative
- Programmer tells “WHAT to do”
- We simply describe the way the computer should achieve the result
- The HOW (step-by-step instructions) gets abstracted away.
- Example: Description of a cake.
Functional Programming
- Declarative programming paradigm.
- Based on the idea of writing software by combining many pure functions, avoiding side effects and mutating data.
- Side effect: Modification (mutation) of any data outside of the function (mutating external variables, logging to console, writing to DOM, etc.).
- Pure function: Function without side effects. Does not depend on external variables. Given the same inputs, always returns the same outputs.
- Immutability: State (data) is never modified! Instead, state is copied and the copy is mutated and returned.
- Examples: React - Redux.
Functional Programming Techniques
- Try to avoid data mutations (e.g. using
Object.freeze()
). - Use built-in methods that don’t produce side effects.
- Do data transformations with methods such as
.map()
,.filter()
and.reduce()
. - Try to avoid side effects in functions: this is of course not always possible!
Declarative Syntax
- Use Array and Object Destructuring.
- Use the Spread Operator (
...
). - Use the ternary (conditional) operator.
- Use template literals.