富途 前端一面 秋招
基本信息
时间: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]));
-
反问,经典问技术栈和做什么产品
总结
难度较大,有点难
#富途##前端##秋招##面经#