- 闭包
简单地说,就是两个函数嵌套,内部函数可以读取外部函数的变量,并返回出来。变量作用域有局部变量和全局变量,函数内部可以直接访问全局变量,但是函数外部无法访问函数内部的局部变量。所以想在函数外部访问内部的变量时,就可以在函数内部再定义一个函数,使用子函数,把父函数的变量返回出去。函数被调用的时候,会创建一个执行环境和作用域链还有关联的活动对象。正常来说,某个函数执行结束以后,执行环境就被销毁了,里面的变量也会被销毁,但是如果有闭包的话,只有执行环境被销毁,活动对象不会被销毁,因为还被内部的作用域链引用。
- 原型链
访问一个对象的某个属性的时候,先查找这个对象本身的属性,如果没有找到,就去它的_proto_上查找,就是构造函数的prototype,一层一层向上查找就形成了一个链式结构。比如new一个Number 1 1的_proto指向Number.prototype → Object.prototype → null
- 性能优化
雪碧图 图片base64转码
cdn 节流防抖 合理使用缓存(协商缓存强制缓存 service worker) 懒加载
减少cookie大小,使用localStorage
使用外部js css文件 文件压缩