javascript执行环境以及作用域链的理解

时间:2021-12-11 14:46:51

在理解执行环境的时候,我个人有个理解的方法

可以把整个执行环境当作是一个地球,我们都在这里面活动,各自拥有着某些特性跟技能.

那么全局执行环境,我们可以看做是整个地球,那么在web浏览器当中,就是window对象,因为我们在地球上生活,做的所有事情,都被视作为是它的属性跟方法.

当我们在地球上消失了,把所有的精力跟能力全部用完了,那我们自然就走了,消耗完了.那么在JS执行环境当中,变量跟函数在用完了之后,就会随之销毁了.至于最后一层的变量,跟函数,会在浏览器被关闭销毁.

在这个大的环境当中,我们又分很多小的环境,就像我们不同国家生活在不同地域一样,有着不一样的行为.

那么整个的函数执行流程该怎么理解呢,

如: 在进入执行一个函数体的时候,这个函数的环境会被推入到一个环境栈当中.可以理解为,比如:你要上厕所,你就得去统一的地方去方便.

当执行完了后,也就是上完厕所之后,是不是要把你放出来,那你的*又回到了之前的环境,圈子里,函数也一样,执行完了之后栈将会将其抛出,控制权回到之前的执行环境.