堆内存的销毁:
谷歌浏览器:定时清除,每隔一段时间就会通篇销毁一次,把js中没用到的地址销毁
火狐浏览器:计数清除,根据当前地址的引用个数来决定这个地址是否被消耗
栈内存的销毁:
全局作用域的销毁:页面关闭的时候销毁
私有作用域的销毁:只要函数的返回值是一个引用数据类型,那么这个地址就不销毁(执行完外面没有用了就可以销毁了)
不销毁的坏处:栈溢出 造成内存泄漏
闭包:就是一个变量的保护机制
1.是一个不销毁的作用域:一个是用来保护变量不受全局的污染。一个是用来存储值
2.好处:可以实现模块化开发,避免命名冲突
3.不能多用,容易造成内存泄漏
4.特性:函数内再嵌套函数,内部函数可以引用外层的参数和变量,参数和变量不会被垃圾回收机制回收
this:
1.事件绑定中的this,就是当前绑定的元素
2.自执行函数中的this,就是window
3.定时器中的this,指向也是window
4.其他函数看点. 函数执行点前边是谁 this就是谁,没有就是window
5.箭头函数没有this和arguments,他把两者当成了普通的变量去处理,箭头函数的this指向上 级作用域