这次面试的是ACG
百度智能云事业群产业创新业务部的前端实习岗位,当时主要是浩泽老哥在群里招呼人了,我就投了个简历,看看寒假可以去实习。
一面是在2020.11.10 15:00
,面试小姐姐很漂亮哈哈,不过还是很紧张,毕竟这么久没有和面试官对线了。面试大概是50
多分钟,面试小姐姐的电脑没电了,最后一个柯里化的编程题我写了之后发给小姐姐的,好家伙老紧张了,按键盘都按不明白了。不过我觉得我答的还行,除了有些紧张导致吞吞吐吐大部分都算是答出来了,一面完成了浩泽老哥就跟我说过一段时间就要二面了。这些面试题是回忆的,可能还有一些面试题我记不住了,这些问题基本上在我的博客都有,只不过都是以分析的形式给出的,所以篇幅比较长,可以试着看看,另外一定要常看博客,我就是之前写的东西还都给忘了。
- 实现一个三列布局,使用
flex
、position
、float
实现,屏幕共享手写代码。 position
中fixed
和absolute
的区别。JavaScript
基本数据类型。JavaScript
中Symbol
数据类型的作用。ES6
的let
、const
与var
的区别。Promise
对象以及async
与await
的作用。ES5
与ES6
实现继承的方式,手写代码。JavaScript
的作用域、原型链以及闭包。JavaScript
中判断数据类型的方法以及分别有什么区别。HTTP2.0
协议的特点。HTTP
请求中options
的用途,简单请求与复杂请求,跨域问题。- 浏览器的缓存机制,分别用什么请求头控制,
Cache-Control
属性的值,强缓存与协商缓存。 XSS
与CSRF
攻击的原理以及避免。- 对于
MVVM
模式的理解。 Vue
的生命周期,分别在何时触发。Vue
中循环的key
的作用,我就不该提到diff
,没仔细看diff
算法,然后给我自己挖了个坑。Vue
的diff
算法,层次遍历还是深度遍历。Vue
中父子组件传值通信的办法。Vue
如何实现的数据双向绑定,在2.0
与3.0
有什么区别。Vue-Router
如何实现的路由,Hash
模式和History
模式的区别。- 编程,编写程序将数组扁平化并去除其中重复部分数据,最终得到一个升序且不重复的数组。
- 编程,实现
plus(1)(2)(3)(4)
等于8
。
// 编写程序将数组扁平化并去除其中重复部分数据,最终得到一个升序且不重复的数组。
var arr = [[1,2,2], [3,4,5,5], [3, 4, 5, [6, 7]]];
function flat(arr){
let tmp = [];
arr.forEach(v => {
if(v instanceof Array) tmp.push(...flat(v));
else tmp.push(v);
})
return tmp;
}
var arr = [...new Set(flat(arr))]; // HashTable更好
arr.sort((a, b) => a-b);
console.log(arr)
// 实现 plus(1)(2)(3)(4) 等于 8。
function add(a, b, c, d){
return a+b+c+d;
}
function convert(funct, ...args){
let argsLength = funct.length;
return (..._args) => {
_args.push(...args);
if(_args.length >= argsLength) return funct(..._args);
else return convert(funct, ..._args);
}
}
const plus = convert(add);
console.log(plus(1)(2)(3)(4));
2020-11-16
是挂面,说是挂面,实际上是根本没有二面,还是称其为挂面vermicelli
吧。
本来是要二面的,谁知道他们变卦了,然后浩泽老哥跟我说他们想招一个能发offer
的,准确来说是准确说是明年毕业能发正式offer
的,我这研一的直接就不符合要求啊。看起来准确来说是要秋招的,我这是去当实习他们不要,白瞎了我这自我感觉良好哈哈。
一面结束的时候就跟我说等着二面,这直接就变卦了,好家伙我TM
直接好家伙。
再有我闲的没事询问了一下那边收到的前端简历比后端的多,并且浩泽老哥也说其实前端在之后的晋升方面可能不太有优势,不过我这学了这么长时间的前端也不合适去转后端,说不定最后我还就搞C++
了呢。
想进大厂着实太难了,当年我投阿里实习简历都没给我过,现在百度实习又给我挂了,我太难了。