富途也是投递了以后很快有反馈的一家公司。这里记录一下一二面。
一面基本没什么难度,二面就emmmm
一面
0、自我介绍
1、讲讲es6有什么新特性?用过哪些?
2、讲讲csrf、xss攻击
3、vue的双向绑定的原理?
4、http缓存有哪些?
5、为什么vue里面,组件的data需要返回一个函数?
6、箭头函数和普通函数的区别?
7、用过webpack吗?在项目中怎么配置?图片文件需要怎么配置?
8、编程题:
1)实现一个fibonacci函数,输入数字n,输出fibonacci数列的第n项数字,并给该函数加入缓存功能。
if(n == 1 || n == 2){
map[n] = 1;
return 1;
}
if(!map[n]){
map[n] = fibonacci(n-1, map) + fibonacci(n-2, map)
}
return map[n];
}
2)给定一个字符串str,只会出现{}()[]这六种字符,请实现一个函数isMatch(str)判断这个字符串中的括号是否是匹配的。
例如以下字符串均为括号匹配的:(){{}[]} {}([])
以下字符串不为括号匹配: ({} ([)[{}
let stack = [];
for(let i=0;i<str.length;i++){
if(str[i] == '(' || str[i] == '{' || str[i] == '['){
stack.push(str[i])
}else if(str[i] == ')' || str[i] == '}' || str[i] == ']'){
let target = stack[stack.length-1];
if(
target == '(' && str[i] == ')' ||
target == '{' && str[i] == '}' ||
target == '[' && str[i] == ']'
){
stack.pop();
}else{
return false;
}
}
}
return !stack.length
}
3)实现一个函数,返回一个n,m的随机数。
Math.random,要注意的是Math.random返回的是0到1之间的随机数,包括0但是不包括1。
总结:一面真的非常基础也非常简单,编程题也不难,问答题像vue的原理面试官也没有深入去问,貌似是对着题目列表来问的
二面
二面问的很广,有逻辑题、语言题、程序题、设计题、程序填空题。。。一度以为自己在做大学期末考卷
由于面试官要求,不能把真题发出来,我就简单地说一说= =
逻辑题顾名思义了,面试官会追问原因,以及让你计算概率
语言题就是给你一个场景,问你如果让你设计一个类你会怎么设计,然后给你另一种设计方法,问你为什么这样设计不行
程序题就算法,给定时间复杂度、空间复杂度,让你口头给一个解决思路
设计题,给你个场景,让你设计一个api需要的参数
程序填空题,给个场景,给出程序的大体思路,里面有几个判断让你填空。填完以后面试官会问为什么要这么填
总结:说实话二面还蛮无语的,面试总时长两个小时,面试官一边自己敲代码一边从题库里面抽题让我做,比较好的一点是这个面试官会一步步引导你
全部评论
(5) 回帖