首先注意一点:js是解释形语言!声明a的时候解释器会开辟一块内存,存储变量名a和变量值!至于解释器如何存储才是你说的问题!

解决方案 »

  1.   

    首先,堆和栈都是编译型语言中的概念
    js 是解释型语言,没有这个玩意
    所以你没有看到 js 有 pop、push 这样的栈操作函数,也没有看到 malloc 这样的堆操作函数解释型语言都维护着一张表,或者你可理解为一个结构数组
    记录着每个变量的名字、类型、值
      

  2.   

    如果是javaScript中的基本数据类型定义,只要用栈内存就可以,不用堆内存。
    如果是引用类型,除了要栈内存外,还需要有堆内存空间地址。不管是基本类型,还是引用类型,栈内存都是需要的,如果是基本数据类型,则栈中存储的就是值,如果是引用数据类型,则栈中存的是地址值,这个地址值是堆内存中的,这个堆内存中存储了引用类型的具体值。
      

  3.   

    我知道我是知道的太少,想得太多。妄想不用翻看大块头的书,看几篇博客,提几个问题就能对js有个深刻的印象,显然是不靠谱的。谢谢版主的回复,你说的解释性语言没有栈和堆的概念,这点存疑。毕竟我看到太多说到js里面栈和堆的文章。比如你的楼下。
      

  4.   

    其实我就是想大致的不用十分精确的了解javascript各个部分在物理内存的存储位置和方式。包括值类型,引用类型,变量名乃至函数等等所有的东西。