JavaScript变量——栈内存or堆内存

成员变量在堆,局部变量在栈。堆是线程都可以访问的,而不同线程的栈是无法互相访问的。
成员变量可以理解为属性,对象的属性一般都叫成员变量,js所谓的全局变量也叫成员变量,window的成员变量。
function与其他块内部的变量为局部变量

与其他语言不通,JS的引用数据类型,比如数组Array,它们值的大小是不固定的。引用数据类型的值是保存在堆内存中的对象。JavaScript不允许直接访问堆内存中的位置,因此我们不能直接操作对象的堆内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象。因此,引用类型的值都是按引用访问的。这里的引用,我们可以粗浅地理解为保存在栈内存中的一个地址,该地址与堆内存的实际值相关联。

https://www.jianshu.com/p/996671d4dcc4
https://juejin.im/entry/589c29a9b123db16a3c18adf

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,793评论 1 32
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 9,868评论 1 14
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 5,791评论 0 10
  • 主体游戏是 一,斗地主 二,抽牌比大小(快速决胜负) 里面的54张牌都有对应的纪念币,都是有令用户自己冠名的扑克牌...
    Tony桃李阅读 1,332评论 0 0
  • material datepicker 需要用到模板变量,如果需要在循环出来datepicker可以这么干 直接把...
    飞凡的陀螺阅读 4,487评论 0 0