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