# 百度实习生前端面试 这次面试的是`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`。 ```javascript // 编写程序将数组扁平化并去除其中重复部分数据,最终得到一个升序且不重复的数组。 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++`了呢。 想进大厂着实太难了,当年我投阿里实习简历都没给我过,现在百度实习又给我挂了,我太难了。