闭包
函数运行时形成一个私有的封闭的空间,就是闭包,闭包是一种机制。
作用:1.具有封装性 2.保护的作用,防止里面的内容跟外界冲突和覆盖
闭包的几种形式:
1.自执行函数
2.函数return一个内部小函数
3.自执行函数内部返回对象(高级单例模式):解决了公有和私有的问题
var let const
var 和 let 的区别
* 1.let没有变量提升,变量必须声明后再用
* 2.在当前作用域下,ES6中不允许重名变量,有重名变量会报错 have been declared
*
const
不可以重新赋值
作用域销毁:
作用域销毁:
* 全局作用域:页面关闭时销毁
* 私有作用域:立即销毁 不立即销毁 不销毁
*
正常情况,方法运行结束,产生的作用域就会销毁。叫:立即销毁
* 特殊情况:1.当一个函数返回另一个函数时,这个函数不会立即销毁,等返回的小函数运行结束后,此函数才会销毁。叫:不立即销毁
* 2.当函数内部的内容被外界占用,函数不会销毁
*
* 堆内存销毁:
* 如果堆内存的引用地址被变量占用了,这时堆内存不会被销毁,只有没有变量指向这个堆内存时,浏览器会在空闲时回收这块堆内存
* 成为垃圾回收机制 (标准浏览器的垃圾回收机制)
*
* 作用域不销毁的缺点和优点:缺点:会占用内存 优点:上次的结果被保存下来,下次操作时会用到上次的结果
*
this
this:
* 方法里的this是谁,跟什么有关?(共6条 面向对象还会填充)
* 1.看方法名前面有没有.,若没有,this是window。若有,.前面是谁,this就是谁
* 2.自执行函数的this是window,不论自执行函数在哪
* 3.事件绑定的this指的是绑定的元素
*