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

来源:4-2 JS 值类型和引用类型的区别

慕丝1117639

2022-04-03

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

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

请问是不是这么理解?

写回答

1回答

双越

2022-04-04

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

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


0
1
慕丝1117639
每一个函数都有一个与关联的对象,这个对象就是变量对象。函数中定义的变量和函数都会保存在这个对象中。那么这个对象是在堆中的,所以函数中定义的变量其实也是保存在堆中的。 请问这样理解对吗?
2022-04-06
共1条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程