JS 堆栈

作者: 田帅奇 | 来源:发表于2018-09-06 15:17 被阅读0次

堆是堆内存的简称,栈是栈内存的简称。

堆是动态分配内存,内存大小不一,也不会自动释放。栈是自动分配相对固定大小的内存空间,并由系统自动释放.

JS的数据类型
  • 基本数据类型
    Undefined、Null、Boolean、String、Number、Symbol都是直接按值直接存在栈中,每种类型的数据占用的内存空间大小都是固定的,并且由系统自动分配自动释放
  • 引用数据类型
    Object,Array,Function这样的数据存在堆内存中,但是数据指针是存放在栈内存中的,当我们访问引用数据时,先从栈内存中获取指针,通过指针在堆内存中找到数据

以代码为例:

let arr_origin = [1,2,3,4,5];
let arr_copy = arr_origin;
let arr2 = arr_origin[2];

如果执行下面代码:

arr_copy[1] = 'change1';
arr2 = ‘change2’

我们发现arr_origin中的下标是1的值变成可change1,但是下标是2的值并未变化。原因是:arr_copy是arr_origin栈指针的引用,并未开辟新的内存空间,但是arr2是在栈内存中独立存在,所以会产生上述结果。熟悉此原理,则数据的深浅拷贝就不难理解了!

相关文章

  • JS 堆栈

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

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

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

  • 前端线路图

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

  • JS 堆栈内存

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

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

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

  • 3-15 算法类

    排序 队列 链表堆栈 是一定要准备的,JS的数组本身就具备堆栈和队列的特性.pop push shift unsh...

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

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

  • JS 堆栈Object详解

    Js——万物皆对象??! 对于初学Js的码农来说,Js的对象是令大家困惑的一个难点,而面向对象的思想却是掌握Js编...

  • JS堆栈与拷贝

    原文:http://www.cnblogs.com/jingwhale/p/4884759.html 一.堆栈的定...

  • JS的堆栈原理

    堆 指的是 堆内存, 堆是动态分配内存,内存大小不一,也不会自动释放。堆 是在程序运行时,而不是在程序编译时,申...

网友评论

    本文标题:JS 堆栈

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