闭包
定义在一个函数内部中的函数,即闭包就是能够读取其他函数内部变量的函数 本质上,就是函数内部与函数外部连接的一座桥梁
作用
- 读取函数内部的变量
- 让这些变量的值始终保持在内存中
注意点
- 由于闭包使得函数中的变量都保存在内存中,内存消耗很大,不能滥用闭包否则造成网页性能问题。(解决方法:在退出函数之前,将不使用的局部变量全部删除)
- 闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。
前端自动化构建
什么是项目构建
- 编译项目中的js,css
- 合并js,css等文件(使用构建工具合并以后,会自动生成合并以后的文件,这样子只需要引入合并文件即可,减少资源加载的次数)
- 压缩html,css,js等资源文件(减少文件的大小,减少内存的使用) 总之项目构建就是减少项目的重量
Grunt
一套前端自动化构建工具
Gulp
基于node.js的自动任务运行器,自动完成js,css,sass,less,html等文件的合并、压缩、检查、监听文件变化、浏览器自动刷新、测试等任务
- 使用node.js中的stream来读取和操作数据
css预处理器
- 文件切分 css预处理器通过编译环节将切分以后的文件重新合并成一个大文件,解决了大文件不便维护的问题,另一方面也解决了一堆小文件在加载时的性能问题。
- 模块化
- 选择符嵌套语法
- 支持变量+运算
- 函数
- Mixin
- 工程化 css预处理语言无法直接运行于浏览器环境,需要编译为css代码才能运行在网页之中 编译-构建-代码校验、压缩。。。