let和const声明变量,用于块级作用域和变量声明
箭头函数
模版字符串
解构赋值
扩展运算符
Promise和异步函数(async、await)
类和继承(class)
模块化(import、export关键字,提供了基于原型的继承机制)
Set和Map数据结构
Proxy和Reflect
Symbol数据类型
Iterator和for...of循环
默认参数、扩展操作符、展开操作符
模版字符串的标签功能
字符串的includes、startsWith和endsWith方法
数组的find和findIndex方法
数组的filter、map、reduce和reduceRight方法
关于this
箭头函数自身没有this的,它的this是谁调用它,this的指向谁;
这样自然就不能使用call和apply和bind来改变this的指向;
关于argument
箭头函数是没有argument的但是可以使用rest代替;
无法new
箭头函数并不是构造函数所以无法new;
特点:1、不需要function关键字来创建函数
2、省略return关键字
3、继承当前上下文this关键字
箭头函数:this永远指向其上下文的this,任何方法改变不了其指向(call、apply、bind );
普通函数:this指的是调用它的那个对象;
使用new set()、filter()、reduce函数
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray1 = [...new Set(array)];
const uniqueArray2 = array.filter((item, index) => array.indexOf(item) === index);
const uniqueArray3 = array.reduce((accumulator, currentValue) => { if (!accumulator.includes(currentValue)) { accumulator.push(currentValue); } return accumulator; }, []);
宏任务:script、setTimeout、setInterval、postMessage窗口通信等;
微任务:Promise、nextTick等;微任务的优先级要高于宏任务。
Promise是一个对象,可以获取异步操作的消息;
Promise.then接收两个函数作为参数(成功、失败)
Promise有等待状态pending、操作成功fulfilled、操作失败rejected、状态一旦改变就不会在变,创造promise实例后,它会立即执行;
Promise可以支持多个并发请求,获取并发请求中的数据;
promise 和 async/await 是两个常用的异步编程解决方案
一、区别
1.语法不同:promise 使用 then 和 catch 关键字,而 async/await 使用 async/await 关键字;
2.捕获异常操作不同:promise 在 catch 中捕获异常,而 async/await 在 try/catch 中捕获异常;
3.处理并发能力不同:promise 可以使用 promise.all并行处理多个异步请求,提高代码执行效率,而 async/await 只能串行执行异步操作
二、优势
1.promise,可以并行处理异步请求,但是要注意并发请求的数量
2.async/await 写法类似同步代码,减少了回调函数的嵌套,利于更好阅读和理解
三、总结
综上所述,promise 和 async/await 各有优势和劣势,在处理并发请求的时候可以使用 promise.all 来处理,更好的提高代码性能;单独处理异步结果的时候,可以使用 async/await 处理异步结果,代码结构更清晰易读;具体使用还是要根据自己的业务需求来决定
链式操作减低了编码难度、代码可读性明显增强;
用法:promise构造函数接收了一个函数作为参数,该函数的两个参数分别是resolve和reject;
7、请举例说明Set和Map数据结构在实际开发中的应用场景?
Set是一种新的数据结构,类似于数组,但成员的值都是唯一的,没有重复的值;
应用场景:去重、属性检查、并集、交集和差集操作
const arr1 = [33,43,23,435,46,325]
const arr2 = [43,23,34,645,5,76,70]
const union = Array.form(new Set([...arr1,arr2])) //并集
const cross = Array,form(new Set(arr1.filter((item)=>arr2.includes(item)))); //交集
const diff = Array.form(new Set(union.filter((item)=>!cross.includes(item)))); //差集
Map是一种键值对集合,可以记住键对应的值,并支持直接通过键来访问值;
应用场景:对象属性的映射、复杂数据结构、持久化数据
链式回调
同时发起几个异步请求,谁先有结果就拿谁的
发起多个请求,等到所有请求后在做下一步处理
promise可以通过then方法实现链式回调,通过promise.all方法实现同时发起多个异步请求,通过promise.race方法实现等待多个异步请求的结果;

1876

被折叠的 条评论
为什么被折叠?



