04-28笔记

一.说⼀下你对promise的理解?

1.1 什么是promise?通过promise能够解决什么问题?

⾸先promise是es6提供⼀种异步解决⽅案. 通过promise能够解决回调地狱问题.拿到a的数据后才去请求b,拿到b的数据后再去请求c 这就叫回调地狱 像这种回调嵌套回调的写法就叫回调地狱,promise可以通过链式调⽤的⽅式来解决层层嵌套的问题,但是写法上也不是⾮常好,所以我们最终的替代⽅案是使⽤async和await来解决回调地狱

1.2说⼀下promise的特点?也就是三种状态?

promise⼀共有三个状态,分别是进⾏中,成功或者失败 如何成功的话可以通过resolve⽅法将正确结果返回出去,通过.then的⽅式进⾏接受,失败的话可以通过reject的⽅式将失败的结果返回出去,通 过.catch的⽅式进⾏接受,pending状态是进⾏中,⼀旦进⾏之后,他的状态是不可逆的

1.3 说⼀下promise怎么⽤?

如果要使⽤promise,我们需要对promise进⾏实例化,在实例化的构造函数⾥⾯有⼀个回调函数,这个回调函数⾥⾯有那个参数,分别是resolve和reject,我们可以通过promise的实例化对象调⽤.then或 者.catch⽅式接受结果

1.4 在说⼀下promise的all⽅法和race⽅法?

all方法可以并发请求 同时发送多个请求 当所有的请求都成功的时候才会执行then方法 res是一个数组 放的就是请求到的数据
race方法 也是执行多个请求 谁先请求成功就会执行then方法并且得到请求到的数据

1.5 在说⼀下在项⽬中使⽤promise做过什么?

我在项⽬中经常使⽤promise对api 截形封装以及如何a⻚⾯要获取到b⻚⾯的结果,我们也可以结果promise来完成

二、 说⼀下async和await、以及他们和promise的区别?

⾸先async和await是解决异步的终极⽅案,他是generatal的语法糖. async和await⼀般配和使⽤,当我们给函数前⾯加上关键字async,这个时候,这个函数的返回值就是⼀个promise.⽽await是⼀个同步的操作,await只能配合async,不然会错,await后⾯可以是表达式,也可以是⼀个promise,在await下⾯的代码必须得等待await执⾏完之后才能在执⾏
他们和promise的区别就是在写法上更加的简洁

三、说⼀下es6新增的特性有那些?

  1. 新增了变量声明⽅式,也就是let和const
  2. 新增了解构赋值
  3. 新增了⼀个数组⽅法 字符串⽅法 正则表达的⽅法 函数的⼀些写法 对象的⽅法
  4. promise
  5. async await
  6. class 以及 继承
  7. 模块化
  8. 新的数据类型
  9. ⼤概能想到暂时只有这么多,在项⽬中我经常使⽤let和const 箭头函数。解构赋值 promise 还 有 async await

四、说⼀下数组新增的⽅法有哪些?这些⽅法分别是什么意思?

  • Array.from⽅法 将类数组转化为真正的数组
  • Array.of⽅法 将数值转化为数组
  • copyWithin() ⽅法是将指定位置的成员复制到其他位置(会覆盖原有成员)
  • find⽅法和findindex⽅法 查找符合条件的元素。 查找符合条件元素的下标
  • includes⽅法可以查看表个数组是否包含给定的值
  • flat⽅法将多维数组转化为1维数组或者指定维度的数组
  • 遍历的数组的⽅法:
    • forEach 类似于for循环,主要是⽤来遍历数组
    • map⽅法 主要作⽤是映射⼀个新的数组,可以对数组进⾏遍历
    • filter⽅法 主要作⽤返回⼀个符合条件新的数据,同样也有遍历数组的作⽤

五、说⼀下map⽅法、forEach⽅法、filter⽅法的作⽤以及他们之间的区别?

  • forEach() ⽅法: 循环原来的数组
  • map() ⽅法: 循环原数组并映射⼀个新数组出来
  • filter() ⽅法: 过滤不需要的数组元素

六、说⼀下var 、let、const之间的区别?

  • var 存在提升,我们能在声明之前使⽤。 let 、 const 因为暂时性死区的原因,不能在声明前使⽤
  • var 在全局作⽤域下声明变量会导致变量挂载在 window 上,其他两者不会
  • let 和 const 作⽤基本⼀致,但是后者声明的变量不能再次赋值。

七、说⼀下箭头函数与普通函数的区别?

在es6中,提供了⼀种简洁的函数写法,我们称作“箭头函数”。

写法:函数名=(形参)=>{……} 当函数体中只有⼀个表达式时,{}和return可以省略,当函数体中形参只有⼀个时,()可以省略。

特点:箭头函数中的this始终指向箭头函数定义时的离this最近的⼀个函数,如果没有最近的函数就指向window。

区别:

  1. 箭头函数不能⽤于构造函数,不能使⽤new**⽽普通函数可以
  2. 在普通函数中,this总是指向调⽤它的对象,如果⽤作构造函数,this指向创建的对象实例,⽽箭头函数指向箭头函数定义时的离this最近的⼀个函数,如果没有最近的函数就指向window。

八、说⼀下for in 与for of的区别?

  • For in可以遍历对象 ⽽ for of遍历对象会报错
  • for in 遍历数组得到的数组的下标 ⽽for of遍历得到的时候数组⾥⾯的每⼀个元素

九 、说⼀下es6如何实现类以及如何实现类的继承?

es6提供了类的这个概念,在es5中是没有类的这个概念,如果想在es5中实现⼀个类型,我们只能构造函数的⽅式去创建⼀个类,⽽es6给我们提供⼀个更⽅便的⽅法,那就是class,这个class理解为是构造函数的语法糖.
我们创建⼀个类只需要⽤过关键词class去声明就可以了 , 他的调⽤⽅式和构造函数的调⽤⽅式是⼀样的
通过es6的类还给我们提供⼀个extends这样的⼀个关键字,来实现继承

十 、说⼀下数组去重的⽅法有哪些?es6如何实现数组去重?

  • indexof
  • 双层for循环
  • set⽅法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值