富途 前端一面 秋招
基本信息
时间:2023.9.15
时长:60 min
base:鹏城
面试岗位:前端 秋招 
问题
- 
自我介绍 
- 
刚刚提到了单点登录,那么单点登录的原理和流程? 
- 
这个token是登录成功返回的吗? 
- 
登录门户,会返回token,你再跳转,他们会用这个token,就能单点登录? 
- 
也就是重新分配token一个token, 
- 
token是有效期的把? 
- 
过了一定的token会失效吗? 
- 
如果有三十分钟没有请求token就失效了是吗? 
- 
有pass.aa.com bb.aa.com cc.aa.com dd.aa.com,pass是登录站点,如果先进bb.aa.com,如果没有登录态,就要跳转去pass.aa.com,如果登录成功,去bb.aa.com dd.aa.com都应该是登录成功的,怎么办? 
- 
那也就是三个站点公用一个token,这样子会不会有安全性问题? 
- 
我们聊扫码登录吧,说一波流程 
- 
手机上点击确认,如何把结果通知给页面? 
- 
登录二维码会过期,是如何做到的? 
- 
你刚刚提到了轮训,除了轮训,还有什么方式实现扫码登录,说了websocket,然后问我还有吗? 
- 
轮训分为长轮训和短轮训,有啥区别吗? 
- 
https和http有啥区别? 
- 
最终用到的秘钥是客户端生成的吗? 
- 
客户端加密的那个秘钥是哪里来的? 
- 
https里面客户端的证书是什么东西? 
- 
http2? 
- 
服务端推送是 服务器可以主动推送数据吗? 
- 
服务器怎么知道客户端需要什么文件呢? 
- 
头部压缩的原理是什么? 
- 
多路复用如何理解? 
- 
能同时传多个请求吗? 
- 
有一个html,一个css,一个js,他们是同时传输的吗? 
- 
刚刚不是说有优先级吗,怎么又是并行传? 
- 
我现在同时触发了3个ajax请求,http1和http2下会建立几个tcp链接? 
- 
那如果是10个呢? 
- 
浏览器的跨域了解吗? 
- 
浏览器为啥会做同源策略呀?【忘了。。。】 
- 
跨域了具体表现是啥? 
- 
也就是其实是有相应的,只是响应被浏览器给隐藏了 
- 
b站课程的事务是啥?【acid,讲了一波读未提交,读已提交.重复度.串行化】 
- 
事务负面的作用? 
- 
下面输出是什么 const bar = 1; function foo() { console.log(bar); // A const bar = 2; console.log(bar); // B } foo();
- 
下面输出是什么 function foo() { console.log(bar); // A var bar = 2; console.log(bar); // B } const bar = 1; foo();
- 
下面输出是什么 const bar = 1; function foo() { console.log(bar); // A // var bar = 2; // console.log(bar); // B } foo();
- 
下面输出是什么 let count = 1; const User = { count: 2, action: { setCount(num) { console.log(num); this.count = num; }, }, }; const action = User.action; const setCount = User.action.setCount; Promise.resolve().then(() => { setCount(3); // A setTimeout(() => { action.setCount(4); // B }); }); setTimeout(() => { User.action.setCount(5); // C Promise.resolve().then(() => { setCount(7); // E }); }); setCount(6); // D
- 
手撕代码: /** * 判断 list1 和 list2 是否有子集的关系 * ⚠️ 子集不需要连续 * @param {number[]} list1 有序数组 * @param {number[]} list2 有序数组 * @return {boolean} * * @example * return true * isChild([1, 3, 5], [1, 2, 3, 3, 4, 5]) * * @example * return false * isChild([1, 3, 3, 5], [1, 2, 3, 4, 5]) * * @example * return true * isChild([1, 2, 3, 3, 4, 5], [1, 3, 3, 5]) */ function isChild(list1, list2) { } console.log(isChild([1, 3, 5], [1, 2, 3, 3, 4, 5])) console.log(isChild([1, 3, 3, 5], [1, 2, 3, 4, 5])); console.log(isChild([1, 2, 3, 3, 4, 5], [1, 3, 3, 5]));
- 
反问,经典问技术栈和做什么产品 
总结
难度较大,有点难
#富途##前端##秋招##面经#
