js函数闭包的作用
1、函数闭包的作用1). 让我们在全局作用域中访问局部变量2). 让局部变量一直驻留在计算机的内存中运行结果:报错,变量i未定义,为什么会出现以上情况:3). 作用域不允许4).受到垃圾回收机制的影响,当函数执行完毕后,其内部的变量和函数要被回收掉

3、通过骒貉缭塄原理图的理解:当程序运行时,如果某块内存区域,如display函数内部的var i = 10;要进行使用,所以会自动在内存中开辟一块内存空间,初始化计数器为0,由于display需要使吹涡皋陕用到这个变量i,所以引用计数器进行+1操作,当display函数执行完毕后,由于这块区域不需要引用了,所以进行-1操作,重置为0,由于计数器为0,系统会自动认为这块区域已经没用了,自动回收,所以当我们在全局作用域中再次调用变量i,其已经被回收了!

5、以上程序可以正常弹出“hello”字符串?虽然在Javascript中,函数执行完毕后,其内部的局部变量和函数都要被内存所回收,但是由于其把局部函数fn的首哪纳紧萄地址作为display函数的返回值并把其赋值给全局变量func,这就导致了存在了一种引用关系,全局变量中有一个变量引用了fn函数的首地址,用引用计数器的原则可知,其计数器会自动进行+1操作

7、让局部变量一直驻留在计算机的内存中
