本文首发于 个人Github。css
年中决定离开当前所在的公司,想受一受外面社会的毒打。也面了 2 家还不错的公司(字节跳动 和 拼多多),在此记录分享一下。html
字节跳动的技术面试都是以视频面试的形式进行的。前端
主要考察 js 中的基本类型、typeof
和 instanceof
等。vue
==
和 ===
判断常规的类型比较题,比较基础。react
[] == false
false == false
[1] == [1];
1 === "1";
复制代码
function debounce(func, wait, immediate) {
let timeout;
const debounced = function() {
const context = this;
const args = arguments;
const later = function() {
timeout = null;
if (!immediate) {
func.apply(context, args);
}
};
const callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) {
func.apply(context, args);
}
};
debounced.cancel = () => {
clearTimeout(timeout);
};
return debounced;
}
复制代码
忽然问到了 操做系统 和 计算机网络 的知识(忘光光)。webpack
sum
函数sum(1) == 1;
sum(1)(2) == 3;
sum(1)(2, 3, 4)(5) == 15;
复制代码
注意这道题考的仍是 隐式转换。git
function sum(...args) {
let value = 0;
function innerSum(...args) {
value = args.reduce((a, c) => (a += c), value);
return innerSum;
}
innerSum.valueOf = function() {
return value;
};
return innerSum(...args);
}
复制代码
这道题注意考察对总体项目的理解和把握程度。es6
主要考察 HOC
,举出写过哪些高阶组件,有什么做用便可。github
多是 1 面问了相对太多问题,2 面很轻松,也很短暂。web
和字节跳动同样,考察对项目的总体理解和把握能力。
两家公司的面试难度都不是很大(虽然也多是考虑到我只有 1 年工做经验),可是回味起来仍是意犹未尽,老是想到上高中时数学老师发卷子时那痛心疾首的说道 "你看看,多简单,150 的卷子,至少 120 是基础题,大家咋就啥都不会呢" 。
最后,但愿再过 2 年,能够去阿里。