思考与总结
1.模块化
曾看到某大牛说:模块化和组件化是前端开发的一大趋势。所谓的模块化一般是指为了实现一个特定的功能而将所有的代码(对象)封装成一个模块。而AMD就是requireJS为指定模块规范化的一个产出,它具有异步加载、依赖前置、提前执行的特点。CMD则是针对淘宝技术团队开发sea.js提出的一个规范,它具有同步加载、依赖就近、延迟执行的特点。commonJS在后端Node.js就比较常见,以require(module路径)常见、
2.数据推送
websocket结合socket.io开发在实时通讯方面是非常强大,可以详见前面的博客内容。即基于Node.js的聊天室
3.高级函数
- 惰性函数主要用于第一次调用函数后第二次调用才生效,可以类比XMLHttpRequest,先判断浏览器对其的兼容性,再赋值,此后调用父函数即访问新的值,特点是:一次更改,此后生效。
- 函数柯里化:主要是合并参数
- 级联函数:类比jQuery的链式调用。
4.高级技巧
- 变量作用域以及闭包,这部分主要是理解变量的声明提升,js预处理环境和执行环境。
- this:可以使用apply和call方法改变this的指向,apply和call的唯一区别是传参的形式不同。
- 传递类型分为按值传递和按引用传递。侧重理解按引用传递,包括数组和对象。
5.面向切面编程
Aspect Oriented Programming(AOP),即面向切面编程,主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间的低耦合性的隔离效果。
6.JS多线程
记得浏览器有个GUI线程