wxg前端日常实习一面(已挂)_牛客网 (nowcoder.com)
wxg前端日常实习一面(已挂)
30分钟算法30分钟提问
算法题:
1. 数组第k个最大元素
2. 有效的括号
3. 搜索旋转排序数组
八股项目:
1. settimeout会有不准的情况吗?有没有可能会提前?如果让你去构造这样一个场景, 要怎么样写代码让他延迟执行
2.
setTimeout 不准时原因及 弥补办法_settimeout没有立即发生-CSDN博客
当前任务执行时间过久会导致定期是设置的任务呗延迟执行的
嵌套调用setTimeout存在最小时间延迟4ms 没有被激活的页面当中的定时器最小值大于1000ms 切换了标签页或者把浏览器最小化, 延迟执行时间有最大值, 函数的嵌套导致的,嵌套层级达到一定的深度,
requestAnimationFrame是因为定时器机制导致的,,宏任务 使用requestAniationFrame不需要设置具体的时间
3. 项目里写了通过防抖节流提升页面性能, 为什么防抖节流可以提升页面性能, 有没有一些具体的衡量指标体现他的性能
前端性能优化之防抖与节流,大幅度降低你的事件处理性能-腾讯云开发者社区-腾讯云 (tencent.com) 防抖:从频繁触发执行变为最后一次才执行的 节流:从频繁触发执行变为每个一段时间执行一次
如果在指定的时间内又触发了该事件,则毁掉函数的执行时间又会基于此重新开始计算
var debounce = function(fn, delayTime) {
var timeId;
return function () {
var context = this, args = arguments;
timeId && clearTimeout(timeout);
timeId = setTimeout(function {
fn.apply(context, args);
}, delayTime)
}
}
节流:频繁触发的事件,只会在制定的时间段内执行事件的毁掉,即触发事件间隔大于等于制定的事件才会执行回调函数 函数防抖只会在最后一次触发事件只会才会执行回调内容
5. 浏览器同域名请求的最大并发数限制
前端性能优化篇——浏览器http同域名并发请求对限制_http并发限制-CSDN博客
突破浏览器域名并发限制的解决方案 - 掘金 (juejin.cn)
7. http2多路复用
深入理解http2.0协议,看这篇就够了! - 知乎 (zhihu.com)
http2引入了二进制数据帧和刘,二进制数据帧和流,
9. csrf怎么发生的
CSRF攻击理解、简单演示与预防-腾讯云开发者社区-腾讯云 (tencent.com)
止CSRF策略
CSRF 的两个重要特点
- 伪造请求的网站必须利用用户在被攻击的网站的会话
- 伪造请求的网站并没有访问被攻击网站的页面
策略一 从上可以看出,可以在form表单中添加csrf token,服务器端验证比对来防止csrf。
另外两点和浏览器本身及同源策略有关的是
- 你在domain a 的页面发送一个请求向domain b的时候可以自动带上domain b的cookie。( 这点给了CSRF的机会)
- 你在domain a的页面无法读取domain b的cookie (这里引出了另一个策略)
策略二 domain b的交易比对请求头中的csrf token和cookie中的token;b网站只需要在请求的时候从cookie中读取csrf token 放入请求头中个, 在服务器端进行比对即可。
11. 浏览器的同源策略为什么不能完全阻止csrf攻击
存在不受同源策略限制的内容,同源策略主要用于限制不同于下的网页之间的交互,html标签ig,video等一些资源的文件(如图片,视频)不受同源策略的限制,
13. 怎样有效防范csrf攻击
什么是CSRF?如何防御CSRF攻击?知了堂告诉你 - 知乎 (zhihu.com)
15. 文件切片上传如果文件非常大会产生什么问题
前端大文件上传解决方案—分片上传 - 知乎 (zhihu.com)
17. 秒传的实现原理
18. webworker
webworker是独立的线程,同时运行,互不干扰,
一文彻底学会使用web worker - 掘金 (juejin.cn)
14. websocket建立连接的过程
15. 轮询
setInterval:请求响应结果会受到限制网络或者服务器处理速度,setInterval这种固定间隔并不适合
promise+setTimeoutsleep:
16. 抓包工具怎么抓到https的包
测试必备工具之抓包神器 Charles 如何抓取 https 数据包? - 知乎 (zhihu.com)
来源:牛客网