扫码关注官方订阅号
想知道JavaScript的变量存储方式是怎样的?存储在哪里的?也是内存中吗?
走同样的路,发现不同的人生
具体看变量是什么类型,基本数据类型还是引用数据类型。希望有助:数据类型存储
只看你贴的代码,应该是不会出现你所说的问题的,我猜是不是你其他地方也alert了,你以为是这个地方alert出来的。
alert
请参考《JavaScript高级程序设计》第四章 变量、作用域和内存问题
变量、作用域和内存问题
基本类型变量存储在栈内存中,访问变量直接操作值。引用类型变量实际存储在堆内存中,对应的变量名保存在栈内存中,变量值就是一个指向对象的指针;通过其对应的变量名操作时:1)如果是复制操作,就是复制指针值,类似于基本类型变量复制,但是对象没做变动,依旧存储在同一个堆内存。2)如果是直接操作属性,应该就是针对对象直接操作。
不在内存在哪里? 有堆有栈,并不是说内存中有两块地址叫堆叫栈,而是根据不同的算法来定义的。比如栈的最鲜明的就是特征就是先进后出,就比如你往箱子里面放书,最先放进去的最后才会拿出来,因为总是从面上开始动的。只要满足这个特征我们就叫他栈。另外还有个概念叫常量池。此外js代码执行的过程是先定义后从上往下执行。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
具体看变量是什么类型,基本数据类型还是引用数据类型。
希望有助:数据类型存储
只看你贴的代码,应该是不会出现你所说的问题的,我猜是不是你其他地方也
alert了,你以为是这个地方alert出来的。请参考《JavaScript高级程序设计》第四章
变量、作用域和内存问题基本类型变量存储在栈内存中,访问变量直接操作值。
引用类型变量实际存储在堆内存中,对应的变量名保存在栈内存中,变量值就是一个指向对象的指针;通过其对应的变量名操作时:1)如果是复制操作,就是复制指针值,类似于基本类型变量复制,但是对象没做变动,依旧存储在同一个堆内存。2)如果是直接操作属性,应该就是针对对象直接操作。
不在内存在哪里? 有堆有栈,并不是说内存中有两块地址叫堆叫栈,而是根据不同的算法来定义的。比如栈的最鲜明的就是特征就是先进后出,就比如你往箱子里面放书,最先放进去的最后才会拿出来,因为总是从面上开始动的。只要满足这个特征我们就叫他栈。另外还有个概念叫常量池。此外js代码执行的过程是先定义后从上往下执行。