富途前端社招一面
自我介绍
项目里说到的自定义指令,说了一下过程
CORS跨域-介绍一下跨域原因?解决跨域的方法。说了jsonp、websocket、cors、代理。问了平时使用哪种?说开发代理,生产cors
关于js事件循环的输出题,涉及:async/await、promise、setTimeoout,问了步骤,又问了了解node不?说不熟悉就没有继续出题(关于node的执行输出题)
经典输出题: ['1', '2', '3'].map(parseInt) // 1 NaN NaN 问了原理
问async、defer的区别,继续问页面解析渲染的流程,出一道html文件,问解析的流程,问css加载是否阻塞解析、问js执行是否影响到cssom树的构建
平时用到的判断类型的方法,回答了 typeof + Object.prototype.toString().call(obj) 来判断
XSS怎么防御?回答了转义字符以及csp
CSRF是什么?回答提到了cookie被第三方携带,追问cookie怎么做防护?回答samesite属性设置strict。csrf还有其他防御方式吗?回答get请求不修改数据与请求时附带验证信息比如token或验证码,又问token是如何做验证?回答了大概过程最后放在请求头自定义字段里
vue的父子组件模拟双向绑定数据,其实就是 .sync与emit来实现,提到了vue3直接v-model:name+emit,被追问2、3的v-model有什么不同,答不上来
vue的mixins的合并优先级,说到有同名以组件优先,又问生命周期钩子里的合并规则,说也一样。感觉这个不够熟悉得加强
vue一道题,大意是:一个组件上绑定的属性,如何实现渲染的时候这些属性绑到组件内的元素上?回答说用slot,把内部的内部的元素作为插槽写,又问还有没有其他方式?回答说子组件用props接收,组件内将这些值再绑到内部元素上,面试官回答说这也是一种方式。然后就说下一道题
算法题1:判断有序数组是不是另一个的子集,特别:只要父数组有的元素,子数组有多个也可以算,如:a = [1], b = [1, 1], b也算是a的子集。
一开始用map,先遍历存a元素,再遍历b,问我复杂度是 时间O(m+n), 空间O(m) 问为什么是m+n和m
问怎么优化到时间同样O(n), 复杂度O(1), 提示我有序,想到了双指针写出来
- 面试官说额外加的一道:斐波那契数列,实现缓存。
刚刚写出来有点问题还没整理,他就提示我说问题在哪
- 反问:问技术栈,问node,问业务
全程1h15min
个人感觉:
基础面
有些地方自己补充说了一些,但是说的不好,感觉扣分;
面试官人很好的感觉,说话很温柔(男);
#富途一面面经##春招##面经##前端##社招#似乎是有个题目清单来问的