1. Global execution environment: refers to the outermost execution environment. On the Web, the global execution environment is considered as the Window object. All variables and functions in the global environment are attributes and methods of the object
  2. Execution environment: the environment in which attribute methods are created under scope. After all code is executed, the environment is destroyed and recycled. Each function has its own execution environment.
  3. Execution environment stack: The Call stack of execution environment is placed successively, the execution environment function is removed after completion of execution, and is reclaimed by JS GC, and the environment that gives execution permission to the next execution environment function will be pushed into the “environment stack”. After the function completes execution, the stack pops it and destroys the variable object, then returns control to the previous execution environment. If the variable object of the inner execution environment is referenced by the outer execution environment, the inner environment variable object cannot be destroyed (e.g., closure).
  4. Variable objects: Variables and functions defined in each execution environment are assigned to variable objects,
  5. Active object: refers to the variable object that is currently executing the execution environment
  6. Scope chain: IS a linked list of variable objects and arguments related to the execution environment. You can view the list of variable objects through the scope property
  7. If function B has a prototype object, it looks for its own live object first, and then continues. This is the variable lookup mechanism in Javascript. Returns undefined if the entire scope chain cannot be found.