堆栈和执行环境栈

Posted 52580587zl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了堆栈和执行环境栈相关的知识,希望对你有一定的参考价值。

堆栈是一种数据结构,指的是数据存取的方式,当定义一个变量时,内存会开辟一段空间   

栈(Stack):

先进后出(FILO),在栈顶做插入(压栈)和删除操作(出栈)。

队列:

先进先出(FIFO),在队头做删除操作,在队尾做插入操作。

堆: 

堆和它们不同,代码执行时系统动态分配,不存在是先进后出还是先进先出。

执行环境栈:

    在执行环境栈里,上层可以访问下层变量,但是下层访问不了上层的

作用域链

内层环境可以访问外层中的变量和函数,而外层环境不能访问内层的变量和函数,沿着外层一层一层的找。

变量生命周期

全局变量的生命周期直至浏览器卸载页面才会结束。

局部变量只在函数的执行过程中存在,而在这个过程中会为局部变量在栈或堆上分配相应的空间,以存储它们的值,然后再函数中使用这些变量,直至函数结束

以上是关于堆栈和执行环境栈的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript性能优化3——浏览器执行JavaScript时底层的堆栈操作

JavaScript性能优化3——浏览器执行JavaScript时底层的堆栈操作

JavaScript进阶之执行上下文和执行栈

JAVA寄存器

深入理解javascript原型和闭包(11)——执行上下文栈

JavaScript-执行环境