在某乎上看到一篇系统学习JavaScript
的学习方案,特地记录下来。
原文链接:https://zhuanlan.zhihu.com/p/69625690
第一弹:ECMAScript(JavaScript的基础)
1、编程语言、ECMA、JavaScript、浏览器的发展史
2、基本语法:值、变量、运算、语句等等
3、各种类型的函数、参数与原理
4、预编译、暗示全局变量
5、作用域、作用域链、闭包
6、对象、构造函数、实例化
7、原型、原型链、对象继承
8、对象、对象克隆
9、数组方法、类数组
10、自定义原型方法、碎片知识
11、错误信息、错误捕获
12、严格模式
13、变量声明周期、垃圾回收
第二弹:DOM(文档对象模型,JS操作HTML用的(记住:JS是操作不了CSS的!!)
1、掌握document对象、了解其中的方法的继承关系(特别是相关原型的问题)
2、遍历节点树与遍历元素节点树(重考点)
3、节点的增删改查、元素属性的操作
4、滚动相关操作
5、样式属性相关操作
6、元素运动
(兼容性封装!兼容性封装!兼容性封装!)
7、事件处理函数与绑定机制
8、事件的冒泡捕获机制
9、事件对象与事件源对象
10、事件代理
11、模块化与插件化开发的基础
12、鼠标行为坐标系与相关兼容性、功能性函数封装
13、输入与状态改变事件
14、鼠标行为预测技术
15、键盘事件
16、DOM常见问题的解决方案与函数封装
第三弹:BOM(浏览器对象模型,JS操作浏览器用的,没事儿弹个窗?没娘的孩子最惨)
1、window、Navigator、history、screen、location对象的属性与方法
2、window、location对象深入学习
3、初步掌握单页面应用的简单开发
4、浏览器相关检查
第四弹:正则表达式(匹配字符串用的,这个字符串是不是个E-mail呢?手机号是不是138开头的呢?)
1、转义相关、修饰与元字符
2、正则量词、属性、方法
3、正则相关的所有方法
4、正向预查、贪婪与非贪婪模式
5、replace方法、不捕获分组
第五弹:JSON(一种很友好的数据格式)
1、JSON数据认知与解析方法
2、JSON对象与字符串的转换方法
3、AJAX的基本认知
4、数据渲染、模板渲染
5、数据缓存机制、数据缓存池
第六弹:浏览器(职业素养!职业素养!前端优化!)
1、DOM/CSS/渲染树
2、文档的解析与加载
3、DOM相关回流与重绘
4、渲染引擎、声明HTML与渲染模式
5、JS引擎的执行机制
第七弹:JS运动(就是用JS让DOM元素各种动)
1、JS运动的原理与机制
2、加速度、弹性运动
3、重力运动与拖拽效果
4、原生JS开发无缝轮播图
第八弹:ES5数组扩展方法
ES3的数组方法回顾一下:
concat, join, pop, push, reverse, shift, slice, sort, splice, toString, unshift
ES5给我们扩展的方法:(都跟遍历数组有关)
forEach, map, every, some, filer, reduce, reduceRight
第九弹:函数式编程
1、纯函数
2、函数组合、结合律、pointfree
3、高阶函数
4、函数柯里化与封装
5、偏函数与封装
6、惰性函数与使用场景
7、缓存函数
8、函数防抖、函数节流(必会)
9、归类函数(必会)
第十弹:碎片知识
1、同步与异步加载的三种方法
2、放大与宽放大模式
3、call/apply/bind以及bind重写(常考)
4、标签的属性与特性
5、Math方法
6、封装byClassName
7、断点测试、bug调试
8、图片的预加载与懒加载
9、日期对象与计时器
10、this指向问题
11、DOM与虚拟DOM(常考)
第十一弹:网络
1、服务器的搭建
2、网络、URL、客户端与服务端、域名
3、DNS/IP/TCP/UDP/HTTP/HTTPS
4、三次握手、四次挥手
5、www、http报文、请求方式、GET与POST
6、http状态码、accept与ContentType
7、缓存、长短连接、Content-Length、referrer
8、http版本、同源策略
9、同步与异步请求、混编的概念
10、AJAX以及原生JS封装AJAX
11、AJAX版本、响应状态、超时设置、同步与异步设置
12、6种跨域获取数据的方法
13、iframe与网络相关
14、cookie相关
15、cookie+token技术
第十二弹:ES6(新的JavaScript版本)
1、新增语法
2、新增API
3、集合
4、异步
5、面向对象