请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

值类型和引用类存储在哪?

一般我们讲值类型的数据存在在栈中,引用类型的数据存储在堆中。

但是在函数中定义的变量,都是在这个函数对象上的。那么由于函数对象是保存在堆中的,所以里面的变量是不是也是保存在堆中的呢?
不过仔细想想又不对,函数没有执行的时候,根本没有声明里面的变量,所以只有函数执行的时候,函数内部的变量才得以声明,所以函数内部的值类型的变量还是存储在栈中的。

请问是不是这么理解?

正在回答 回答被采纳积分+3

1回答

双越 2022-04-04 15:05:18

但是在函数中定义的变量,都是在这个函数对象上的”—— 第一句话就错了,例如

function fn() {
    const a = 100
}
console.log(fn.a) // undefined


0 回复 有任何疑惑可以回复我~
  • 提问者 慕丝1117639 #1
    每一个函数都有一个与关联的对象,这个对象就是变量对象。函数中定义的变量和函数都会保存在这个对象中。那么这个对象是在堆中的,所以函数中定义的变量其实也是保存在堆中的。
    请问这样理解对吗?
    回复 有任何疑惑可以回复我~ 2022-04-06 08:47:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信