字节前端一面
①项目介绍,管理端用户登陆流程 token验证
②如果管理系统要有两个风格,暗黑风格和清新风格,如何更改:
③说下协商缓存和强缓存
对于图片,css文件这种用协商缓存好还是强缓存好,(我的回答是两个都用,对于图片文件这种不经常修改的,就用协商缓存,强缓存有有效期,面试官说时间可以延迟,我就。。。)
④webpack处理流程 构建流程 loader加载器
⑤xss攻击csrf攻击 解释以及预防
⑥宏任务和微任务。有个很大的for循环,导致后面页面渲染阻塞,如何通过setTimeout进行优化改造,把for循环内容放到宏任务队列中,没改造出来
⑦使用vue的优势
⑧路由的两种不同方式,hash和history,阐述下原理window.onhashChange
⑨spa和mpa页面的优势缺点
⑩手写一个promise.all()然后修改了下添加了一个target,promise.all(promises,target)
比如说有[fn1,fn2,fn3,fn4] target==2 那么只要fn1,fn2中的任意一个执行完成状态改为resolve,就调用后面的fn3,有且只能有两个函数执行
我的想法是定义一个队列:长度为2执行完一个就出队列,后面的fn3再入队列
面试官想法:两个promise一起执行,然后在resolve里面调用下一个promise。。。
#实习#