What Is a Side Effect?
Learn about the concept of pure functions and the importance of avoiding hidden dependencies to maintain code.
Effective management of side effects
Effective management of side effects in JavaScript functions is crucial for maintaining code integrity and ensuring efficient handling of program behavior and data interactions.
Introduction to pure functions
The following function has no side effects:
function add(a, b) {return a + b}
This function is quite pure, in the sense that if it is invoked with the same set of input arguments, we should get the same result—that is, add (1, 1
) will return 2
. This type of pure function is easy to understand, test, and develop. The reason for this is that the function only depends on the input arguments and has no additional hidden dependency.
Hidden dependencies
We might wonder what a hidden dependency could be. Believe it or not, it's quite easy to have one. In the following code, we'll intentionally introduce two lines, and each will add a hidden dependency:
let c = 3function add(a, b) {console.log(a, b)return a + b + c}
The first line adds an external dependency from the c
variable. Because c
is a global variable, it bypasses the input argument list. If we invoke the add (1, 1
) function now, it can return any number (or even a non-number). That's because c
can be anything at the time ...