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、函数
-
箭头函数
[文章学习地址] www.cnblogs.com/lfxiao/p/93…
-
函数内部值
[文章学习地址] www.cnblogs.com/fuxp/p/1524…
-
函数属性方法
[文章学习地址] blog.csdn.net/wuyufa1994/…
-
尾调用
[文章学习地址] www.jb51.net/article/104…
-
闭包
[文章学习地址] blog.csdn.net/weixin_4355…
-
私有变量
[文章学习地址] www.cnblogs.com/jiangtian/p… \
13、异步函数
-
promise
[文章学习地址] www.jianshu.com/p/b16e7c9e1…
-
async/await
[文章学习地址] www.cnblogs.com/liquanjiang…
-
宏任务、微任务
[文章学习地址] www.cnblogs.com/ckAng/p/111…
-
event loop
[文章学习地址] www.ruanyifeng.com/blog/2014/1…
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、对象、类、面向对象编程
-
设计模式:(工厂模式、构造函数模式、原型模式、对象迭代)
-
继承:(原型继承、组合继承、原型试继承、寄生继承)
[文章学习地址] blog.csdn.net/victor_ll/a…
-
类:(构造函数、实列、原型、类员、继承)
[文章学习地址] www.jianshu.com/p/edf4d665d…
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]): 用于创建一个新的对象