前端javascript学习路线以及知识点介绍

744 阅读4分钟

javascript学习路线以及知识点串联,个人感觉JS的知识点比较碎,所以我自己整理了一下大致路线,方便有方向有计划的学习和总结。

欢迎大家进行知识点的补充~一起学习,进步!

这里推荐进阶JS学习的几本书:

JavsScript高级程序设计(第四版)
你不知道的JavaScript(YOU DONT KNOW JAVASCRIPT)
JavaScript语言精粹
这三本感觉都挺不错的,我的个人学习路线也是跟着JavsScript高级程序设计进行学习的
目前也在持续学习中。

1、HTML DOM(文档对象模型)

[文章学习地址:]  www.w3school.com.cn/js/js_htmld… 

2、变量和常量

[文章学习地址]  www.cnblogs.com/sunchao0709… 

3、数据类型

[文章学习地址]  developer.mozilla.org/zh-CN/docs/… 

4、基本的引用类型

[基本的引用类型]  blog.csdn.net/panxiaocool… 

5、操作符

[文章学习地址]  blog.csdn.net/qq_41218152… 

6、语句(语句有很多建议自己手写练习)
关键词描述
break终止 switch 或循环。
continue跳出循环并在顶端开始。
debugger停止执行 JavaScript,并调用调试函数(如果可用)。
do ... while执行语句块,并在条件为真时重复代码块。
for标记需被执行的语句块,只要条件为真。
function声明函数。
if ... else标记需被执行的语句块,根据某个条件。
return退出函数。
switch标记需被执行的语句块,根据不同的情况。
try ... catch对语句块实现错误处理。
var声明变量。
7、变量、作用域、内存

[文章学习地址]  www.cnblogs.com/winyh/p/666… 

8、原始值、引用值、执行上下文、作用域、垃圾回收

[变量、执行上下文及作用域、内存​]  blog.csdn.net/weixin_3704… 

[垃圾回收]  segmentfault.com/a/119000001… 

9、集合引用类型、object、array、Map、Set

[集合引用类型​]  blog.csdn.net/funiu817718… 

10、迭代器、生成器、

[文章学习地址]  www.cnblogs.com/xiaohuochai… 

11、代理、反射、

[文章学习地址]  www.cnblogs.com/dengxiaonin… 

12、函数
13、异步函数
14、ES6补充知识

[文章学习地址]  es6.ruanyifeng.com/ 

15、BOM(window对象)

[文章学习地址]  c.biancheng.net/js/bom/ 

16、事件

[文章学习地址]  www.runoob.com/js/js-event… 

17、动画、Canvas图形

[文章学习地址]  www.cnblogs.com/cs-whut/p/1… 

18、JSON数据

[文章学习地址]  www.w3school.com.cn/js/js_json_… 

19、处理xml

[文章学习地址]  www.cnblogs.com/franice/p/8… 

20、线程问题

[文章学习地址]  www.cnblogs.com/sunny-bear/… 

21、对象、类、面向对象编程
22、浏览器、客户端存储问题(localStorage、sessionStorage、跨域、)

[文章学习地址]  www.cnblogs.com/xiujun/p/10… 

23、数组、字符串、对象的各种API

简单得整理了一下(一部分):

  • 数组API

    • splice截取删除
    • slice截取删除
    • sort排序
    • pop 末尾删除
    • push末尾添加
    • uinshift 开头添加
    • shift 开头删除
    • reverse倒叙
    • join 拼接
    • String转为字符串
    • consat拼接
    • reduce()从第一项遍历到最后一项
    • reduceRight()从后面向前遍历
  • 字符串API

    • indexOf返回字符串首次出线的位置
    • trim()去掉字符串前后空格
    • toUpperCase大写
    • toLowerCase小写
    • search返回第一个匹配
    • regexp 的子串的开始位置 如果没找到返回-1
    • replace替换
    • slice截取
    • splice分割
  • 对象API

    • hasOwnProperty()是检查指定的属性是不是自有属性的
    • Object.keys()通常我们探索一个对象里的属性时,喜欢使用hasOwnProperty()方法 其实这个方法很不优雅Object.keys(不是Object.prototype.keys )返回的正是一个对象属性数组
    • Object.defineProperty(obj,prop,descriptor)的作用就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性 参数:obj要在其上定义属性的对象。 prop要定义或修改的属性的名称。 descriptor将被定义或修改的属性描述符
    • Object.getPrototypeOf() 验证原型对象(可以手动改变原型对象,再去检查构造函数,所以不严格) Object.getPrototypeOf(arr) == Array.proto;判断arr原型是否是Array原型 var bool = fater.isPrototypeOf(child) 判断father是否是child的父对象
    • Object.is() 用来比较两个值是否严格相等 基本上和 === 一致
    • Object.assign() 用于混合对象,对象的合并,将源对象的所有可枚举(遍历)属性,复制到目标对象,带浅克隆 …ES7
    • Object.setPrototypeOf() 设置某个对象的隐式原型 proto
    • Object.getOwnPropertyNames() 枚举的顺序,返回一个数组,枚举出来对象的属性 对象的顺序其实是浏览器厂商自行规定 先排数字,升序 再排其他,按照书写顺序
    • Object.create(proto,[propertiesObject]): 用于创建一个新的对象