javascript思维导图(更新中)
javascript
变量
首字符为字母、下划线或者美元号,后序字符可以为数字,字母、下划线或者美元号。使用var或者let声明变量,推荐使用let
类型
数据类型有
- undefined:声明没有初始化时值为undefined,用typeof 未发声明的变量时也是undefined
- number
- boolean
- string
- object或者null
- function
- symbol
基本引用类型
RegExp
原始包装类型
String
集合引用类型
数组Array
扩展操作符为...,用于数组或者对象中获取元素集合
- 使用的是浅拷贝
- 在使用在对象扩展时,如果有重复的,后面的会覆盖前面的
定型数组
主要有
- ArrayBuffer
- DataView
- int8Array, int16Array,int32Array以及对应无符号
- Float32Array, Float64Array
Map
新建:是通过new Map()不带参数或者指定元素数组形式,元素为二元素数组
添加:m.set(key, value)
判断是否存在:m.has(key)
获取key对应的value:m.get(key)
WeakMap
key只能是object或者继承自object的类型
应用:私有变量,闭包实现
迭代器和生成器
迭代器是通过符号属性Symbol.iterator来定义。注意可迭代对象的迭代器与对迭代器再次取迭代器时,两者是一样的
生成器通过function*来定义,其支持生成器函数声明、生成器函数表达式、作为对象字面量方法的生成器函数、类实例方法、类静态方法。
- yield只能在生成器函数中使用,不支持函数嵌套。
- 通过yield来中断执行
- yield* 用于迭代一个可迭代对象。可实现递归操作
对象和面向对象
代理(Proxy)和反射(Reflect)
与java中的Proxy和InvocationHandler类似,Reflect主要用在类型于InvocationHandler的处理程序对象中
js之代理和反射
函数
js之函数
期约和异步函数
js之期约和异步函数
浏览器对象模型(BOM)
js之BOM
文档对象模型(DOM)
js之DOM
事件系统
js之事件系统
动画/绘图
js之动画/绘图
表单
js之表单
javascript api
js之javascript API
JavaScript 参考
错误处理
js之错误处理
xml
js之xml处理
json
js之json处理
网络请求与远程资源
js之网络请求与远程资源
客户端存储
js之客户端存储
模块系统
js之模块系统
工作者线程
js之工作者线程
typescript
官网
flow:与typescript类似
书籍
《深入理解TypeScript》
《Effective TypeScript》
《TypeScript项目开发实战》
《TypeScript入门与全栈式网站开发实战》
《TypeScript编程》
《TypeScript设计模式》
Node.js
官网
《深入浅出Node.js》
《Node.js实战》
《狼书(卷3):Node.js高级技术》
Express/Koa源码学习
Socket.IO(实时通信底层实现)
next.js
React 赋予服务端能力,全栈
官网
nest.js
Node.js 引入企业级架构(模块化、依赖注入、AOP),让后端开发者能写出“可维护、可扩展”的服务
官网
axios
英文官网
中文官网
orm
sequelize:中文
