JS学习参考资料归纳
基础:
《javascript语言精粹》
——必须弄清如下概念:js中变量的作用域,变量传递方式,函数的定义环境与执行环境,闭包,函数的四种调用方式(一般函数,对象的方法,apply,call),以及四种调用方式下,‘this'指向的是谁。
初级:
1.可以使用 codecademy 学习 javascript,zepto。学习zepto只是为了快速上手开发项目,获得成就感。同时还是要关注JS原生编程的能力。
2.《object oriented javascript》
——这部分推荐先学习面向对象的基本理论,对封装,继承,多态等概念要理解。
3.对与函数式编程可以参考这篇文章:JavaScript 中的函数式编程实践
4.《dom编程艺术》,《高性能javascript》这本书中关于dom编程的部分讲的也很好。
5.网络编程,这部分相对简单,自己搜索关键字学习即可:
fetch,websocket,jsonp,cors,formData。
另外,Ajax已经被 Fetch Standard 取代,学习 fetch api 即可,如果遇到面试官还在问 ajax 的事情,跟他讲你对fetch的理解即可。
6.学习顺序建议是 JavaScript基础 -> es5 -> es6,越靠前的越重要。
中级:
1.高内聚、低耦合
如果说数据结构和算法是从初级到高级的第一道门槛,能否写出高内聚、低耦合的代码,则是第二道门槛。这部分是《设计模式》课程的主要内容,在《敏捷软件开发-模式、原则与实战》这部分书中也有更好解读.
2.极致的用户体验
《高性能javascript》依然是这个领域的经典,部分过时内容(第五章,字符串和数组相关操作,V8已经做优化;第九章,构建部分,现在基于webpack已经有很成熟的方案了;第十章工具不用看,直接去看chrome的devtool文档)自己忽略一下即可。
总结一下:对于前端页面极致的用户体验围绕这三方面:加载体验、渲染体验、操作体验。
3.工程效率
前端项目同样面临软件生命周期的各个环节,首先是代码管理,你必须学会使用git。其次是代码的构建,如今前端代码构建已经不是简单的压缩一下了,需要进行依赖管理、模块合并、各种编译,必须要学会使用webpack、rollup等前端构建工具,以及前端模块管理的方式,amd,cmd,es6 module 等等。
高级:
提供一个前端知识结构,仅供进一步学习的同学参考:JacksonTian/fks · GitHub。