[1]基础语法
[2]数据类型
[3]重点难点
[4]模块化
[5]节点
[6]脚本化CSS
[7]事件
[8]动画和运动
[9]canvas和SVG
[10]ajax
[11]bom
[12]HTML5
[13]代码优化
前面的话
javascript是一门充满活力、简单易用的语言,又是一门具有许多复杂微妙技术的语言。即使是经验丰富的javascript开发者,如果没有认真学习的话,也无法真正理解它们,这就是javascript的矛盾之处。由于javascript不必理解就可以使用,因此通常来说很难真正理解语言本身,这就是我们面临的挑战。不满足于只是让代码正常工作,而是想要弄清楚为什么,勇于挑战这条崎岖颠簸的少有人走的路,拥抱整个javascript
纷繁复杂的库,大多都以javascript为基础。实际上,前端工程师很大程度上指javascript工程师。前端入门容易精通难,说的是前端,更指的是javascript。如果把掌握HTML和CSS作为进入”前端大学“的高中知识贮备,那么javascript就是”前端大学“的主修课程,如何在”毕业“后成功开启自己的前端人生,要看javascript知识学得深不深,理解得透彻不透彻,所以在javascript上投入多少时间都不为过
小火柴将javascript的知识体系进行了梳理和归纳,总结成以下目录
ECMA
基础语法
【基础】
词法结构
变量和标识符
属性和变量
表达式
严格模式
内存管理及垃圾回收
动态脚本
【运算符】
运算符语法概述
算术运算符
关系运算符
逻辑运算符
位运算符
条件、逗号、赋值、()和void运算符
【语句】
表达式语句、块语句、空语句和声明语句
条件语句、循环语句和跳转语句
eval和with
【规范】
javascript编码标准
关于javascript代码优化的8点建议
JS代码检查工具ESLint
数据类型
15种原生对象类型系统综述
原始值和复杂值
包装对象
【基本类型】
Undefined和Null
Boolean布尔类型
Number数字类型
Math对象
String字符串类型
String字符串类型的属性和方法
【构造器类型】
正则表达式基础语法
RegExp正则类型
Array数组类型
22种数组方法
数组复制
字符串和数组的方法比较
错误处理机制
【日期对象】
日期和时间基础知识
Date日期对象
简易日历实现
日期联动效果
【类型识别】
四种类型识别的方法
数组检测方式
【类型转换】
toString()
valueOf()
数据类型转换
【函数】
函数概述
函数参数
函数的属性和方法
ES6函数扩展
函数式编程
高阶函数
函数柯里化
函数节流和函数防抖
惰性函数
【对象】
初识对象
对象的属性操作
对象的属性描述符
对象拷贝
难点重点
【作用域】
内部原理
词法作用域和动态作用域
声明提升(hosting)
块作用域
一张图理解执行环境和作用域
【闭包】
到底什么才闭包
从执行环境角度看闭包
IIFE
常见的一个循环和闭包的错误详解
闭包的10种形式
【this】
this的4种绑定规则
this绑定优先级
箭头函数
【继承实现】
一张图理解prototype、proto和constructor的三角关系
构造函数和原型对象
创建对象的5种模式
实现继承的3种形式
面向对象的6个概念
【模块化】
实现javascript下的模块组织
CommonJS规范及Node模块实现
使用Browserify来实现CommonJS的浏览器加载
AMD及requireJS
r.js打包
CMD及seaJS
ES6中的Module
DOM
节点
【节点类型】
节点类型概述
文本节点
注释节点和文档类型节点
文档片段节点
元素节点
特性节点
文档节点
【获取节点】
元素选择器
getElementsByClassName
selector选择器
动态集合
【节点操作】
节点关系
节点操作
节点内容
节点遍历
节点范围
区分元素特性和对象属性
脚本化CSS
脚本化行间样式
查询计算样式
脚本化CSS类
脚本化样式表
动态样式
脚本化伪元素
表单脚本
表单对象
表单字段
选择文本
选择框脚本
富文本编辑
元素尺寸
偏移offset
客户区Client
滚动Scroll
回到顶部
元素视图方法
事件
【事件机制】
事件流
事件处理程序
事件对象
事件模拟
事件循环
【事件类型】
鼠标事件
键盘事件
变动事件
剪贴板事件
文本事件
加载事件
焦点管理
动画
拖拽
原生拖放
模拟拖拽
磁性吸附
碰撞检测
拖拽改变元素大小
模拟滚动条
运动
匀速运动
变速运动
曲线运动
抖动
缓冲运动和弹性运动
投掷和轨迹
鼠标跟随运动
碰壁运动
碰撞运动
时间版运动
velocity.js的使用
tween.js的使用
帧动画
canvas
canvas基础语法
canvas图形处理和进阶用法
canvas图形绘制
canvas图像编辑
canvas贝塞尔曲线演示
canvas自适应圆形时钟
canvas粒子时钟
canvas动态小球重叠效果
canvas探照灯效果
canvas粒子系统的构建
SVG
SVG基本形状和样式设置
SVG文本
SVG路径
SVG贝塞尔曲线演示
SVG辅助标签
SVG视野
SVG坐标系统及图形变换
SVG渐变
SVG图案
SVG裁切和蒙版
SVG动画
SVG基本操作API
AJAX
JSON
XHR对象
请求方式
响应解码
FormData
进度事件
头部信息
传递JSON
表单提交
jQuery中的ajax
【跨域】
CORS
图片Ping
JSONP
iframe跨域
存储
Cookie
IE userData
Web Storage
Blob
文件File
BOM
【定时器】
setTimeout()和setInterval()
requestAnimationFrame()
定时器应用(时钟、倒计时、秒表和闹钟)
【window属性】
对话框
窗口操作
location对象
history对象
screen对象
navigator对象和用户代理检测
能力检测
【HTML5】
Web计时机制
Web Worker
好的代码像粥一样,都是用时间熬出来的