javascript学习目录

前面的话

  javascript是一门充满活力、简单易用的语言,又是一门具有许多复杂微妙技术的语言。即使是经验丰富的javascript开发者,如果没有认真学习的话,也无法真正理解它们,这就是javascript的矛盾之处。由于javascript不必理解就可以使用,因此通常来说很难真正理解语言本身,这就是我们面临的挑战。不满足于只是让代码正常工作,而是想要弄清楚为什么,勇于挑战这条崎岖颠簸的少有人走的路,拥抱整个javascript

  纷繁复杂的库,大多都以javascript为基础。实际上,前端工程师很大程度上指javascript工程师。前端入门容易精通难,说的是前端,更指的是javascript。如果把掌握HTML和CSS作为进入”前端大学“的高中知识贮备,那么javascript就是”前端大学“的主修课程,如何在”毕业“后成功开启自己的前端人生,要看javascript知识学得深不深,理解得透彻不透彻,所以在javascript上投入多少时间都不为过

  小火柴将javascript的知识体系进行了梳理和归纳,总结成以下目录

 

ECMA

基础语法

【基础】

  词法结构

  变量和标识符

  属性和变量

  表达式

  严格模式

  内存管理及垃圾回收

  动态脚本

【运算符】

  运算符语法概述  

  算术运算符

  关系运算符

  逻辑运算符

  位运算符

  条件、逗号、赋值、()和void运算符

【语句】

  表达式语句、块语句、空语句和声明语句

  条件语句、循环语句和跳转语句

  eval和with

 【规范】

  javascript编码标准

  关于javascript代码优化的8点建议

 

数据类型

【基础】

  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

 

posted @ 2017-03-11 14:48  小火柴的蓝色理想  阅读(28250)  评论(12编辑  收藏  举报