个人前端的一些资源整理

1、关于CSRF和XSS的介绍 :https://www.cnblogs.com/itsuibi/p/10752868.html

2、关于tree-shaking:https://www.cnblogs.com/sexintercourse/p/11901425.html

3、最长回文子串:

4、大数相加:

5、axios怎么终止请求:https://www.cnblogs.com/the-last/p/12024807.html

6、为什么React的hooks不能写在循环或者条件判断语句里?

为了让我们的 Hooks 在每次渲染的时候都会按照 相同的顺序 调用,因为这里有一个跟关键的问题,那就是 useState 需要依赖参照第一次渲染的调用顺序来匹配对于的state,否则 useState 会无法正确返回它对于的state。

7、useMemo、useCallback使用场景:https://blog.csdn.net/baidu_39067385/article/details/111412255

useMemo和useCallback都可以用来缓存值,区别就是,useMemo返回的是值,useCallback返回的是函数

useCallback的场景是:父组件更新情况下子组件也会更新,但大多数情况下并不需要,可以使用                                        useCallback完成

8、useEffect、useLayoutEffect区别:

https://pengfeixc.com/blog/605af93600f1525af762a725

区别是:useEffect是异步执行的,而useLayoutEffect是同步执行的

useEffect的执行步骤:

1、触发组件重新渲染

2、组件函数执行

3、组件渲染后呈现到屏幕上

4、useEffect hook执行

useLayoutEffect的执行步骤:

1、触发组件重新渲染(通过改变组件state或者组件的父组件重新渲染,导致子节点渲染)

2、组件函数执行

3、useLayoutEffect hook执行,React等待useLayoutEffect的函数执行完毕

4、组件渲染后呈现到屏幕上

useLayoutEffect必须使用的时候:是屏幕可能会产生闪烁的情况

9、手写promise:(自己手写完成一遍)

10、redux的三个原则、如何写一个中间件:
原则:单一数据源、State是只读的、使用纯函数来执行修改

https://www.jianshu.com/p/dbe65d95c77b

11、dva和redux的区别是什么:https://blog.csdn.net/CWH0908/article/details/118249011

12、如何理解fiber:https://segmentfault.com/a/1190000037657657

13、fiber节点对象的一些属性都有哪些:

需要自己解决

14、react diff算法:https://zhuanlan.zhihu.com/p/103187276

***********

15、一个下拉框 200条数据 怎么优化 (默认展示10条):

https://blog.csdn.net/weixin_45093753/article/details/118762653

个人的思路是刚点击下拉调用函数,截取并显示获取20条,然后在滑动滚动条的时候再调用一下函数的,获取后面的数据

16、60个请求(限制最多同时请求6个)请求并行方案:

17、react class 组件constructor 中的super的作用:https://www.jianshu.com/p/e91e885b9180

18、pureComponent和Compoent什么区别:

https://blog.csdn.net/leelxp/article/details/108218088

19、react组件名称为什么要大写:

https://juejin.cn/post/6844904077755695118

20、箭头函数和普通function的区别:

https://www.cnblogs.com/biubiuxixiya/p/8610594.html

21、react class和hooks区别:

https://www.jianshu.com/p/e22f941c1439

22、HOC使用场景、自定义hooks使用情况:https://www.jianshu.com/p/58c04356e433

23、数组遍历方法 哪个快:

https://blog.csdn.net/kongjiea/article/details/78891166

for > for-of > forEach > filter > map > for-in

for ~= do while < forEach ~= map ~= every < $.each < $(e).each < for in  

24、深拷贝实现、和浅拷贝的区别:

25、react生命周期 为什么新增了两个静态的 目的是什么

https://www.cnblogs.com/MDGE/p/14310859.html

26、css flex

27、Object.keys() 和 for in 区别:https://www.cnblogs.com/yuzhongyu/p/10831561.html

28、实现sleep函数 实现sleep(1000)延迟执行

29、vw、vh、rem、em:

30、link标签prefetch、preload作用:https://www.cnblogs.com/xiaohuochai/p/9183874.html

31、script标签async、defer作用、区别:https://www.cnblogs.com/jiasm/p/7683930.html

32、e.target 和 e.currentTarget区别:https://www.cnblogs.com/d-12315/p/5652582.html

33、0.1 + 0.2 !== 0.3 解决办法:https://blog.csdn.net/miaomiao_1024/article/details/103170160

34、typeof String(1) 和type new String(1) 返回值:

string  object

35、检测数据类型方法有哪些:

36、跨域方法 CORS怎么携带cookie 。 cookie的samesite作用https://blog.csdn.net/hilaryfrank/article/details/112200461

37、http头部字段都有哪些

38、对cdn的理解

39、自定义hooks使用

40、Object和Map的区别:https://blog.csdn.net/ckwang6/article/details/89215396

41、Map和WeakMap 的区别:https://blog.csdn.net/weixin_42458965/article/details/109258470

42、进程和线程的区别:https://www.cnblogs.com/ypppt/p/13323597.html

43、线程、进程通信方式:https://blog.csdn.net/zuochao_2013/article/details/82770662

44、使用webWorker是新开了个进程还是线程:https://www.jianshu.com/p/3090eae158b7

45、深拷贝实现、和浅拷贝的区别:https://juejin.cn/post/6844903929705136141

46、多维数组降纬:https://www.cnblogs.com/yalong/p/10615194.html

47、快速排序:https://blog.csdn.net/weixin_39006917/article/details/110522576

48、promise先catch再then 在catch里返回内容then里回调函数能不能接受到:能接受到

   const p1 = new Promise((resolve, reject) => {
           setTimeout(() => resolve('成功'), 3000)
         })
     
         const p2 = new Promise((resolve, reject) => {
           setTimeout(() => reject(new Error('失败了')), 3000)
         })
     
         p1.then(function (post) {
           return p2
         })
           .then((resolve) => {
             //这里的代码不会执行
             console.log('p2 reject 第二个then执行了')
             return `第二个then的返回值`   
           })
           .catch((e) => {
             console.log(e, '=====first error')
           })
           .then((resolve) => {
             console.log('第三个then执行了,接收到的返回值为:', resolve)
           })
           .catch((e) => console.log(e, '=====error'))

50、浏览器event loop的解析: https://segmentfault.com/a/1190000012925872

你可能感兴趣的:(面试,前端,javascript,vue,react)