学习堆内存,栈内存时遇到一些疑惑
下面是我所知道的,有不对的地方欢迎指出:
js中基础变量存在栈内存中,如var a = 3;其中3存在于常量池中,并对应一个编号xx,而栈内存中则存着a对应xx,这样形成a->xx->3,从栈内存指向常量池。
而对象则存在堆内存中,如var b = {};在堆内存中存在一个对象{},对应一个编号yy,而在栈内存中存在一个b对应yy,形成一个b->yy->{}的形式,从栈内存指向堆内存。
那我现在有个问题,如果var c = {d:1};栈内存中是只存了c对应{d:1}的地址编号,还是同时存了一个c.d对应常量池中1的对应编号?也就是说,当我访问c.d时,具体的访问,是怎么走的?
另一个问题,所谓将{}存在堆内存中,{}在堆内存中是个什么样子的?一串二进制代码吗?