美文网首页
2020-11-04 js堆栈池理解

2020-11-04 js堆栈池理解

作者: SherrinfordL | 来源:发表于2020-11-04 19:46 被阅读0次

JS内存空间分为栈,堆,池(一般也会归类为栈中),其中栈存放基本类型的变量和对象的引用,堆存放复杂数据类型(引用类型)分配空间,例如数组和对象都属于引用类型,池存放常量。

堆,用于复杂数据类型(引用类型)分配空间,例如数组对象、object对象;它是运行时动态分配内存的,因此存取速度较慢。

栈,主要存放一些基本类型的变量和对象的引用(包含池,池存放常量),其优势是存取速度比堆要快,并且栈内的数据可以共享,但缺点是存在栈中的数据大小与生存期必须确定,缺乏灵活性。同时栈也有有个特点跟数据结构一样,先进后出,后进先出,所以当操作数组时push 优于 unshift。

特别例子:闭包中的变量并不保存在栈内存中,而是保存在堆内存中,这就是函数调用栈之后为什么还能引用函数内的变量的原因。

function x() {
  let name = "haha"
  function y() {
      console.log(name)
  }
  return y
}

相关文章

  • 2020-11-04 js堆栈池理解

    JS内存空间分为栈,堆,池(一般也会归类为栈中),其中栈存放基本类型的变量和对象的引用,堆存放复杂数据类型(引用类...

  • JS引擎是如何工作的?从调用堆栈到Promise

    摘要: 理解 JS 引擎运行原理。 作者:前端小智 原文:JS引擎:它们是如何工作的?从调用堆栈到Promise,...

  • js中堆栈、作用域(链)、this、闭包及垃圾回收

    一、堆栈 1、内存构成、作用域(链)与this JS的内存空间分为栈(stack)、堆(heap)、池(一般也会归...

  • JS 堆栈

    堆是堆内存的简称,栈是栈内存的简称。 堆是动态分配内存,内存大小不一,也不会自动释放。栈是自动分配相对固定大小的内...

  • JavaScript是如何工作的:引擎,运行时和调用堆栈的概述!

    摘要: 理解JS执行原理。 原文:JavaScript是如何工作的:引擎,运行时和调用堆栈的概述! 作者:前端小智...

  • 如何优雅地查看 JS 错误堆栈?

    摘要: 堆栈是Debug的关键。 原文:如何优雅地查看 JS 错误堆栈? 作者:小芭乐 Fundebug经授权转载...

  • 前端线路图

    1 堆栈内存以及闭包作用域 1 js中的基本数据类型以及其区别 (8种) 2 js堆栈内存的运行机制 3 变量提升...

  • JS 堆栈内存

    堆栈内存的作用 JS 中的内存堆内存和栈内存,所有堆栈内存的处理,浏览器会自行在内部执行 栈内存: 提供一个供 J...

  • Js/1 堆栈内存/变量提升和闭包

    1# Js数据类型渲染机制和堆栈内存 Js 文件的放置位置 head 头部 body 底部(推荐) Js 的 ...

  • 自动释放池

    自动释放池被置于一个堆栈中,虽然它们通常被称为被“嵌套”的。当您创建一个新的自动释放池时,它被添加到堆栈的顶部。当...

网友评论

      本文标题:2020-11-04 js堆栈池理解

      本文链接:https://www.haomeiwen.com/subject/lgxnvktx.html