Home >Web Front-end >JS Tutorial >Analysis of side effects of js functions_javascript skills
Function side effects will bring unnecessary trouble to program design, bring errors that are difficult to find, and reduce the readability of the program. Strict functional languages require functions to have no side effects.
Several concepts related to the side effects of functions, Pure Function, Impure Function, Referential Transparent.
Pure Function (Pure Function)
The input and output data flows are all explicit. Explicit means that there is only one way for a function to exchange data with the outside world - parameters and return values. All input information a function accepts from outside the function is passed inside the function through parameters. All information that a function outputs outside the function is passed outside the function through the return value.
Impure Function (Impure Function)
The opposite. Implicit means that the function exchanges data with the outside world through channels other than parameters and return values. For example, reading/modifying global variables is called implicit data exchange with the outside world.
Referential Transparent (Referential Transparent)
The concept of referential transparency is related to and affected by the side effects of functions. If two expressions of the same value in a program can be replaced with each other anywhere in the program without affecting the action of the program, then the program has referential transparency. It has the advantage that the semantics of non-reference-transparent languages are easier to understand and less obscure. Pure functional languages have no variables, so they are referentially transparent.
The following example illustrates the combination of referential transparency and function side effects