前端—每天5道面试题(4)

1、写 React / Vue 项目时为什么要在列表组件中写 key, 其作用是什么?

  key是给每一个vnode的唯一id,可以依靠key,更准确,更快的拿到oldVnode 中对应的 vnode 节点

 

2、介绍下 Set、Map、WeakSet 和 WeakMap 的区别? 

  Set——对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。

  WeakSet——成员都是对象;成员都是弱引用,可以被垃圾回收机制回收,可以 用来保存 DOM 节点,不容易造成内存泄漏。

  Map——本质上是键值对的集合,类似集合;可以遍历,方法很多,可以跟各 种数据格式转换。

  WeakMap——只接受对象最为键名(null 除外),不接受其他类型的值作为键
  名;键名是弱引用,键值可以是任意的,键名所指向的对象可以被垃圾回收, 此时键名是无效的;不能遍历,方法有 get、set、has、delete。

 

3、简述一下JS 异步解决方案的发展历程以及优缺点

  1、回调函数(callback) 优点:解决了同步的问题(只要有一个任务耗时很长,后面的任务都必须排队 等着,会拖延整个程序的执行。) 缺点:回调地狱,不能用 try catch 捕获错误,不能 return 。

  2、Promise 优点:解决了回调地狱的问题 缺点:无法取消 Promise ,错误需要通过回调函数来捕获。

  3、Generator 特点:可以控制函数的执行,可以配合 co 函数库使用 。

  4、Async/await 优点:代码清晰,不用像 Promise 写一大堆 then 链,处理了回调地狱的问题 缺点:await 将异步代码改造成同步代码,如果多个异步操作没有依赖性而使 用 await 会导致性能上的降低。

4、介绍js的基本数据类型

  undefined null number blooean string symbol

 

5、js的内置对象有哪些

  数据封装对象 object array boolean number string

  其他对象 function arguments math date regexp error

 


原文链接:https://blog.csdn.net/m0_46374969/article/details/114700959

posted @ 2021-07-26 20:05  起风了1573  阅读(38)  评论(0)    收藏  举报