采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
一般我们讲值类型的数据存在在栈中,引用类型的数据存储在堆中。
但是在函数中定义的变量,都是在这个函数对象上的。那么由于函数对象是保存在堆中的,所以里面的变量是不是也是保存在堆中的呢? 不过仔细想想又不对,函数没有执行的时候,根本没有声明里面的变量,所以只有函数执行的时候,函数内部的变量才得以声明,所以函数内部的值类型的变量还是存储在栈中的。
请问是不是这么理解?
“但是在函数中定义的变量,都是在这个函数对象上的”—— 第一句话就错了,例如
function fn() { const a = 100 } console.log(fn.a) // undefined
每一个函数都有一个与关联的对象,这个对象就是变量对象。函数中定义的变量和函数都会保存在这个对象中。那么这个对象是在堆中的,所以函数中定义的变量其实也是保存在堆中的。 请问这样理解对吗?
登录后可查看更多问答,登录/注册
针对时下面试高频考点,帮助新人js面试快速通关
1.6k 17
1.8k 11
1.3k 11
1.2k 11