导图社区 nodejs知识导图
一张思维导图带你了解nodejs知识点,包括扩展运算符、class类、对象新增方法、同步与异步、异步使用场景、异步的技术解决方案。
本导图讲述了fs的知识内容,包括流文件操作、案例、文件夹操作、文件操作、判断文件信息等,赶快收藏下图了解吧!
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
nodejs
扩展运算符
数组
合并数组
arr.concat(arr1,arr2)
[...arr1,arr2]
解构赋值
数组的解构赋值,只能放在最后一个,否则会报错
对象
合并对象
Object.assign({},p1,p2)
{...obj1,...obj2}
合并多个个对象 如果有相同属性,后写的覆盖先
结构赋值
{user,...pr}={user:"zs",age:20,sex:男}
对象的解构赋值 放在最后一个
伪数组转数组
[...]
[...document.querySelectorAll("li")]
浅拷贝
[...arr]
[].
{...obj}
深拷贝
方法二:
递归方法
方法一:
JSON.stringify()
JSON.parse()
缺点:无法拷贝函数
class类
1.class关键字
2.构造函数名大写
3.方法和方法之间不用逗号
4.constructor自动生成,并且在new实例的时候,自动调用
5.class定义的构造函数只能new调用,不能当作普通函数来调用
6.静态方法 static不能用实例调用,只能用类名
new Set()数据结构
它类似于数组,但是成员的值都是唯一的,没有重复的值。[1,3,4,5,1] "abc133"数组/字符/对象
例子:数组去重[...new Set([1,4,2,1])]
方法:set.add()
不能添加重复项
方法: set.delete()
方法:set.has(val)
true/false
属性:size
长度
案例:并集,交集,差集
对象新增的方法
let obj={name:"zs",age:20,sex:"男"}
键值对
访问对象:对象名。属性名/对象
for(key in 对象名){console.log(key)console.log(obj[key])}
key是键(属性名)
for(i in 数组名){console.log()arr[i]}
i是下标
Object.keys(对象名)
返回一个数组,成员是参数对象自属性的键名
【'name','sex'】
Object.values(对象名)
返回一个数组,成员是参数对象自属性值
【】
Object.entries(对象名)
成员是参加对象自身的键值对数组
同步/异步
同步:必须等上一个任务执行完以后,再执行下一个任务;缺点:阻塞代码执行;
不用等上一个任务完成,就可以执行下一个任务;优点:非阻塞代码执行
异步使用场景
(其实异步修改了代码的执行顺序)
//1.网络请求 Ajax请求,比如图片请求,数据请求//2.定时器 setTimeout()setInterVal();//3.事件绑定onclick
异步的技术解决方案
定时器
回调函数
promise
状态
进行中pending
成功fulfiled
resolve()
失败rejected
reject()
throw new Error('这是个错误)
方法
then()
成功执行的方法
返回值都是一个新的promise对象,状态是进行中
catch()
失败执行得方法
finally()
无论成功失败都执行
没有参数
无法确定promise得状态
静态方法
promise.all()
promise.all([p1,p2,p3]);
只有p1,p2,p3的状态都成功,p的状态才会变成成功,此时p1,p2,p3的返回值组成一个数组,传递给p的回调函数。
只要p1,p2,p3之中有一个失败,p的状态就变成失败,此时第一个被reject的实例的返回值,会传递给p的回调函数。
Promise.race()
promise.race([p1,p2,p3]);
只要p1,p2,p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的promise实例的返回值,就传递给p的回调函数
如果指定时间内没有获得结果,就将promise的状态变为reject
promise.resolve()
等价于
newpromise((resolve,reject)=>{)resolve()
只返回成功状态promise对象,所以只会触发后续then函数
promise.reject
new promise((resolve,reject)=>{reject()})
只返回失败状态的promise对象,所以只会触发后续catch函数