作者的个人网站: Greatiga的个人网站。会不定时分享各种学习心得文章
目前已经毕业,在去年2020秋招的摸爬滚打中,侥幸收获了几个小offer。最后也很幸运去腾讯实习了一段时间。虽然已经是去年的面经,但我觉得考察的东西大同小异,所以想着把自己经历的大厂前端面试题整理出来,留给需要找实习工作的童鞋们一个参考。
包括腾讯区域研发、字节跳动、腾讯日常实习、小米的前端面经
总结下来感觉问题都是交叉的,基础、框架、网络安全、项目都有。二面的时候让自我介绍加项
目介绍,后面问题都是围绕你的回答展开。HR面正常回答就好,表现出你想去公司工作的愿望
自我介绍
Flex布局,实现两个子元素垂直,并且一个靠右一个靠左
<div class="parent">
<div class="left">div>
<div class="right">div>
div>
.parent {
display: flex;
align-items: center;
justify-content: space-between;
height: 400px;
border: 1px black solid;
}
.left {
width: 100px;
height: 150px;
border: 1px red solid;
}
.right {
width: 100px;
height: 150px;
border: 1px green solid;
}
console.log(foo);
function foo(){
console.log("foo");
}
var foo = 1;
输出
//ƒ foo(){
// console.log("foo");
//}
var value = 'tom';
function foo() {
console.log(value)
}
function bar() {
var value = 'bob';
foo();
}
bar();
输出
//tom
function foo() {
return function() {
console.log(this)
}
}
foo()();
输出
//window
var foo = {
bar: function () {
return this;
}
}
foo.bar();
输出
//{bar: f}
const obj = {a: {b : {c : {d: 3}}}}
function getValue(obj, str, defaultValue) {}
getValue(obj, 'a.b.c.d', 1) => 3 (存在该属性返回该属性对应的值)
getValue(obj, 'a.b.c.d.e', 1) => 1 (出现错误返回传入的默认值)
改动,能处理数组
const obj_1 = {a: {b : {c : {d: [{e : 4}]}}}}
getValue(obj_1, 'a.b.c.d[0].e', 1) => 4
function getRightValue(obj, propertyString, defaultValue) {
let str = propertyString.split('.');
for(let i = 0; i < str.length; i++) {
if(obj.hasOwnProperty(str[i])) {
obj = obj[str[i]];
} else {
return defaultValue;
}
}
return obj;
}
const obj = { a: {b: {c: { d: 3 }}}}
console.log(getRightValue(obj, 'a.b.c.d', 1))
改动后加上了数组,所以细节要处理好,我当时卡壳了没弄出来
反问
因为自己没有实习经历,项目都是自己写的,一下子想不出什么难点,只是简单聊了一些功能实现。所以建议大家以后聊项目时,有好的实习经历,就说一下实习的项目,没有实习只有自己项目的,也要往自己项目里面添加一些亮点(难点)。面试之前也要梳理好自己的项目,不然面试一下想不起来细节就尴尬了,别像我一样,,,呜,,,
这个日常实习很迷,而且一开始面试就明确说了实习后面不会留。考察比较偏算法和逻辑思维
小米前端的面试整体上来说是比较偏基础的,面试官人也很好。算法题需要掌握一些基础的
希望这些大厂面经能对你有所帮助,虽说是2020年的秋招,但是万变不离其宗,我想2021年秋招考察的依然是这些 --> 扎实基础 + 基本必须掌握的算法 + 知识的广度与深度。
学弟学妹以及万千互联网求职者们,加油!