前言
三月份过去了,笔者的春招实习面试也告一段落了。在这接近一个月的时间,经历了面试时的紧张、失败时的痛苦、拿到offer的兴奋。目前面了字节、美团、腾讯、清远墨墨、阿里。并拿到了字节、腾讯、清远墨墨的实习offer。
这次就先从笔者就从自己的心路历程结合面试干货娓娓道来。(ps:由于笔者没有面试完就及时写面经的好习惯,以至于一些细节有些忘记了。我会在想起来的第一时间回来补充)
初面试-字节跳动(头条部一面)
这是笔者人生第一次面试,有些紧张。面试官是一个有点严肃的小姐姐,看到她第一眼笔者就觉得是自己心目中程序媛的形象。
- 自我介绍
- css选择器、优先级
- 标准盒模型和ie盒模型
- js继承 (原型式、构造函数式、组合式、寄生式)
- js判断类型 (typeof 、 instanceof、 Object.prototype.toString.call)
- settimeout和setinterval区别 。 宏任务、微任务、异步队列
- 一道考察promise的题
let j = ()=>{
return 2
}
new Promise((resolve, reject)=>{
resolve(1)
}).then(j).then(req=>{
console.log(req); //2
})
- 说几个http字段吧,作用是什么(content-type 、Cache-Control 、Etag)
- 跨域问题 node怎么配置跨域 (cros)
- http状态码以及代表什么
- cookie、session、token
- node的框架学过吗 express、koa 区别? 这里笔者主要讲了洋葱模型
- 笔试题 1.广度优先遍历二叉树 2.多维数组压平 3.翻转矩阵 笔试题都不难,是leetcode的easy原题。
这次面试表现得不是很好,很紧张,写编程题的时候手都在抖。幸运的是当天晚上就被告知通过了。第二天开始二面。
字节跳动(头条部二面)
二面面试官是一个小哥哥,没有露脸,全程语音交流。
- 前端优化 这个题比较开放,可以从减少资源请求、资源大小、优化网络、资源加载、回流重绘等多方面回答。
- vuex状态管理存在意义? 单向数据流、集中管理
- vuex的action怎么触发? dispatch
- 介绍下项目 、难点? 这个就不细讲了,每个人项目都不一样,答得让面试官觉得你在遇到问题时有思考的过程就好。
- 笔试题
1.实现一个add方法
add(1)(2,3)(4).value() 输出: 10
function add(...num) {
let curr = function (...out) {
return add.apply(this, num.concat(out))
}
curr.value = function () {
return num.reduce(function (pre, cur) {
return pre + cur
})
}
return curr
}
2.实现一个异步队列Queue,要求按时间依次执行callback
new Queue().task(1000, function () {
console.log(1);
}).task(2000, function () {
console.log(2);
}).start()
答案1:
function Queue1(