JS的函数内部变量及作用域是在函数定义时就占用内存了吗?还是在函数调用时占用内存?

JS只要定义了函数,不执行,并且不将函置为null,该函数内部变量就永远在内存中吗?

阅读 4k
3 个回答

no。
每次执行创建一个上下文执行环境,当前次执行时的变量存在于当前上下文执行环境中,若无外部引用,函数执行完之后内部变量会被释放掉。

我认为不会有这样的语言吧,定义时就占用内存?你代码都还没执行

函数的内部变量是在函数执行的时候才会存在的,也就是函数作用域吧。

在函数执行完之后,所有的内部变量都会被销毁。

永远存在内存中就是闭包引起的内存问题了,会将内部变量一直保存在变量中,只能手动销毁。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题