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