今天给大家带来一篇社招面经。
近期大厂裁员的风声不断,作者也是在这段时间进行了面试,目前已入职Tiktok。他记录了在这6个公司的面试经历,大家一块来看看吧。
Tips:跳槽前可以先想一下,首先是check下自己到底是否应该跳槽了,而不是单纯的干的不爽,换个工作能否解决现在的问题;还有就是一般面试hr面都会问这个,需要准备下
主要有三个:
目前部门所负责的业务不是很有发展前景,个人不太看好,且自身工作时间不长,处于一个快速学习成长的阶段,不太允许我花长时间去等一个好项目。
举一个我身上真实的例子:21年8月我从科技异动到零售的时候,虽然当时我选择异动有各方面原因吧,比如我的mentor离开了京东,但是绝大部分原因是我不看好当时所做的业务,当时主管还有挽留,我比较直,直接说了不太看好业务,主管当时还说我的目光短浅了,但是22年整个二级部门的业务都没了,之前那个组的前端同事要么是异动到其他部门,要么是离开了,就很被动吧...其实无关对错、无关谁看得准,首先得需要自己认可这份业务,才能干的开心
趁年轻还是觉得应该多钻研技术,倾向于技术团队一些;或者说这个团队会在业务中尝试新技术,比如vue3,比如monorepo...目前所在前端团队偏职能型,技术方面不是很重视
有点感觉自己的付出比收获要大,且一直低base担心可能会影响到后续没有竞争力。
Tips:可以提前分析个人优劣势,针对性制定面试准备计划
Tips:这个也挺重要的,投递的时候看好业务、部门;公司一般都只能在一个流程里面,结束流程才能面其他的部门,且都是有面评的,最好是一次性选择好面完
Tips:可以找身边厉害的大佬帮忙看看自己的简历,能发现不少问题
这个我就不写了,感觉我现在也写的不怎么好。
PS:这儿再给”前端面试题宝典“的增值服务:“简历指导”和“模拟面试“打波广告,有需求的小伙伴,可以联系小助手(微信号:interview-fe)了解详情哦~
根据有劣势分析,所以我将重点放在框架上,主要准备了react的理论知识,以及刷常见的算法
下面进入面经分享环节
Promise.reject(1)
.then((num) => {
console.log(num);
}).catch((num) => {
return num + 1;
}).then((num) => {
console.log(num);
});
// 2
Promise.resolve(1)
.then((num) => {
console.log(num);
}).catch((num) => {
return num + 1;
}).then((num) => {
console.log(num);
});
// 1
// undefined
:focus
)position: sticky;
)[{ price: 1, size: 2 }, { price: 2, size: 2 }, { price: 1, size: 1 }]] 依次按照price、size降序排序
function sort(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i].price === arr[j].price && arr[i].size < arr[j].size) {
[arr[i], arr[j]] = [arr[j], arr[i]];
} else if (arr[i].price < arr[j].price) {
[arr[i], arr[j]] = [arr[j], arr[i]];
}
}
}
return arr;
}
component、PureComponent 区别var name = "global";
var obj = {
name: "ngnce",
log:()=> {
console.log(this.name);
}
}
obj.log()
var obj = {
name: "ngnce",
log:()=> {
console.log(this.name);
}
}
obj.log()
e.target 和 e.currentTarget 有什么区别hooks
你们实践的经验是什么console.log(1);
let b = new Promise((resolve, reject) =>{
console.log(2);
}).then((x) => {
console.log(3);
})
setTimeout(() => {
console.log(4)
}, 100);
let c = async() => {
setTimeout(() => {
new Promise((resolve, reject) => {
console.log(6);
})
}, 0);
let x = await new Promise((resolve, reject) =>{
console.log(5);
resolve(7)
})
console.log(x);
console.log(8);
}
console.log(9);
c()
console.log(10)
// 1
// 2
// 9
// 5
// 10
// 7
// 8
// 6
// 4
let c = () => {
setTimeout(() => {
new Promise((resolve, reject) => {
console.log(6);
});
}, 0);
new Promise((resolve, reject) => {
console.log(5);
resolve(7);
}).then((res) => {
console.log(res);
console.log(8);
});
};
React 17
版本有什么特性monorepo
,有没有遇到依赖相关的问题,比如隐式依赖useCallback
跟 useMemo
的使用场景// 考察Map用法
function httpRequest(url, options) {
return Promise((resolve, reject) => {});
}
const reqMap = new Map();
const waitTime = 1000;
function request(url, options) {
if (reqMap.has(url)) {
const req = reqMap.get(url);
if (Date.now() - req.time < waitTime) {
return reqMap.get(url).response;
}
} else {
const res = {
response: httpRequest(url, options),
time: Date.now(),
};
reqMap.set(url, res);
}
}
// replace不会改变原字符串
// 正则表达式:. 匹配除换行符 \
之外的任何单字符;* 匹配前面的子表达式零次或多次;? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
function template(str, context) {
return str.replace(/\\$\\{(.*?)\\}/g, (match, key) => {
return context[key]
});
}
自我介绍刚开始,临时有事,直接跟面试官说抱歉结束面试了,我不礼貌了,希望那位面试官看到了能原谅我😭
const arr = [1,2,3,4,5] // 无语法错误
const arr1 = arr.push(6) // 6
constructor
里面写 setTimeout
,this指向什么keep-live
实现原理,对应的react如何实现document.body.style = 'background: red'
document.body.style = 'background: black'
const getMostStr = (arr) => {
let obj = {}
let mostObj = {
str: '',
count: 0
}
for (let i = 0; i < arr.length; i++) {
if (obj[arr[i]]) {
obj[arr[i]]++
} else {
obj[arr[i]] = 1
}
if (mostObj.count < obj[arr[i]]) {
mostObj.count = obj[arr[i]]
mostObj.str = arr[i]
}
}
return mostObj.str
}
'get-element-by-id' -> 'getElementById‘
const transStr = (str) => {
const arr = str.split("-")
let res = arr[0]
for(let i = 1; i < arr.length; i++){
res += arr[i].slice(0,1).toUpperCase() + arr[i].slice(1)
}
return res
}
之前约的是电话面试,由于没提前看邮箱,我以为会打电话过来,最后面试官打电话提醒我的,有点尴尬,就是说面试千万不要迟到!加上code半小时,果不其然挂了
根据简历问项目
主要根据简历问
其实从分享的面经中,可以看到不同的公司,几乎都对项目经验比较关注,项目相关的问题较多。我们在面试准备的过程中,一定要好好准备简历,突出自己熟悉的领域,引导面试官往相关方向提问。
还有一点是算法题,这几家公司的面试中都有涉及到,大家记得多刷LeetCode。
原文作者:jjjona0215
原文链接:https://juejin.cn/post/7100982054996672543