记录碰到的常见的前端面试考点

1、什么是promise,与ajax的区别

所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理,让开发者不用再关注于时序和底层的结果。Promise的状态具有不受外界影响和不可逆两个特点。

-promise是一个对象,对象和函数的区别就是对象可以保存状态,函数不可以(闭包除外)
-并未剥夺函数return的能力,因此无需层层传递callback,进行回调获取数据
-代码风格,容易理解,便于维护
-多个异步等待合并便于解决

promise详解

new Promise(
  function (resolve, reject) {
    // 一段耗时的异步操作
    resolve('成功') // 数据处理完成
    // reject('失败') // 数据处理出错
  }
).then(
  (res) => {console.log(res)},  // 成功
  (err) => {console.log(err)} // 失败
)

resolve作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;
reject作用是,将Promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。
promise有三个状态:
1、pending[待定]初始状态
2、fulfilled[实现]操作成功
3、rejected[被否决]操作失败
当promise状态发生改变,就会触发then()里的响应函数处理后续步骤;
promise状态一经改变,不会再变。
Promise对象的状态改变,只有两种可能:
从pending变为fulfilled
从pending变为rejected。
这两种情况只要发生,状态就凝固了,不会再变了。
查看详细
promise与ajax的区别

2、彻底弄懂promise、async、await

3、vue2和vue3的区别

4、history和hash模式的区别

5、微信授权流程

6、小程序授权流程(https://juejin.cn/post/6844904163868934151)

7、eslint日常使用

8、vue项目优化(https://zhuanlan.zhihu.com/p/163182117)

9、webpack打包运行及机制

10、eventloop 事件流 宏任务微任务

11、async await与promise的区别

12、$set运行的原理

13、$nexttick方法原理

14、es6解构

15、vue-router生命周期

16、小程序生命周期

17、vue生命周期及各个阶段的状态

18、闭包及应用

19、var let const 的区别

20、什么时候会造成浏览器内存溢出

21、伪类与微元素

22、BFC

23、rem移动端适配原理

24、flex布局

25、[去重方式]

26、[数据遍历方式]

27、[es6新特新]

28、[ for of与for in的区别]

29、[object. key()遍历方式]

30、[ssr的作用]

31、[nodejs相关]

32、[翻页时显示的数组需要清空的原因]

33、[webpack的应用]

34、[set与some的区别]

35、[ v-for循环时设置key与设置id的区别]

36、[印象较深的项目、难题及自己的解决方案]

37、[原型与原型链]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容