本文会记录我秋招过程中一些面试经验和感受,大部分问题是没有答案的,但是可以在我博客页面进行翻阅,对应公司面经都有解答。感谢您的阅读~

没有比脚更远的路,没有比人更高的山!

字节跳动-广告系统-商业平台

介绍

春招那会面了一次字节,看我往期博客就造了,那时候一面就凉了,但秋招提前批的时候,也是在恒生那边实习的时候,北京HR打电话过来约面试,于是约到了8月27日晚上。

一面

面经

1、自我介绍

2、手撕防抖(如果滚动条判断一个div是否存在会用什么来做?节流)

3、CSS实现三角形

4、了解伪元素和伪类吗?

5、 盒模型

6、Vue双向绑定实现 Object.defineProperty() 它有哪些不足点?

7、Koa 中间件 passport

8、仿美团项目登录怎么实现的

9、cookie 和 session 区别(session 存放哪)

10、如何保护cookie

11、浏览器缓存 强缓存 和 协商缓存 状态码

12、HTTPS中 TLS握手过程简述

13、 询问输出结果

function Foo() {
getName = function () { alert (1); };
return this;
}
Foo.getName = function () { alert (2);};
Foo.prototype.getName = function () { alert (3);};
var getName = function () { alert (4);};
function getName() { alert (5);}

//请写出以下输出结果:
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();

14、 promise相关,下面代码输出结果

Promise.reject(2).catch(e => e).then(d => {
console.log(d);
});
// 输出

15、你还有什么要问我的吗?

感受

自认为前一部分答的还不错,手撕防抖那里没啥问题,与面试官进行了交流。但后面有点拉胯。询问结果那块答的不是很好,没想到还是让我过了一面。

二面

面经

开篇没有自我介绍,面试官直接说一面问的比较简单,我来考察一下。

1、考你一点操作系统知识,你知道进程和线程吗?它们有什么区别联系?

2、进程间通信有了解过吗?

3、说说网络吧,你知道子网掩码这个概念吗?这个出错了会怎么办?是访问不了内网还是外网还是怎么?

4、刚刚说了ABC类地址,你知道这个是怎么区分的吗?

5、你怎么学习前端的?

6、那你有了解过 BOM 和 DOM吗?

7、有了解过 map 吗?那你知道 Map和 WeakMap的区别吗?

8、你刚刚讲到了垃圾回收,那你知道v8垃圾回收机制吗?说说

9、你了解class吗?你能模拟实现它的私有属性吗?让他具有 private 功能

10、ES5中的继承实现方式

11、提供类似框架,实现时间过滤器

class DateHelper {
/**
* 将 UNIX timestamp 时间标签转换成 formatter 格式
* @param {Number} 时间标签 e.g. 1463368789
* @param {String} 格式 e.g. 'yyyy-mm-dd hh:MM'
* @returns {String} e.g. '2016-05-16 18:17'
*/
timestampConverter (timestamp: number, formatter: string): string {
// write code here
}
}

12、算法题

给定一个整数数组nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6

这道题卡了一小会,但最后还是以O(n)时间做出来了

13、设计题

微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的?

场景是一台手机(已经登录了微信),PC端服务器,微信服务器,网页二维码。你怎么处理这四者的关系,不牵扯到网络,中间人攻击层面来讲。

这题想了挺久,不断尝试去套面试官的话,不过后面面试官说我还是猜到了一点点。

14、你还有什么要问我的吗?

请教了一下最后那个设计题的简单思路,我是最后结束了才明白场景居然是那样,不过面试官那边确实有点吵,一些点也没抓住。

参考知乎:微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的?

感受

这…我原本以为二面也会是一些基础题,毕竟看了那么多面经,但发现事情没这么简单,上来就聊了操作系统,然后逐步深入,计算机网络那块,我主要是准备了HTTP、TCP那些网络协议相关,子网那些没怎么看都忘了。

甚至觉得这位面试官操作系统、网络这块挺6的,底层那些东西都能扯到,很少见到前端面试官会谈及这些问题,受教了受教了。

另外,还是有一点紧张,毕竟这是我第一次二面,我以为二面会扯到我的项目,我还准备了许久,但没有牵扯到这块,看别人面经都会问许多HTTP、TCP、握手、缓存这块,这块我真的是熟的不能再熟悉了,也许运气不太好。不管最后结果如何,我也增加了一次二面的经验,后续也会越来越好的。

腾讯-QQ音乐

介绍

腾讯这块也是误打误撞,原本我只是想在官网更新一下简历,没想到跟着春招那会直接又投了,于是收到了8月28日(周五)早10点30电话面试,春招那会也有一次电话面试,面完就GG了,这次同样…

一面

面经

1、自我介绍

2、了解ajax跨域嘛?

3、cors跨域怎么做?

4、说说jsonp原理

5、如果是用node来做跨域的话,你会怎么做?

6、怎样给一个新增的dom节点绑定事件?(询问事件代理的作用)

7、了解浏览器缓存吗?(强缓存、协商缓存)你怎样更新强缓存呢?

8、如何检测JS错误,如何保证你的产品质量?(错误监控)(仅仅答了window.onerror)跨域的js运行错误可以捕获吗,错误提示什么,应该怎么处理?

感受

腾讯给我面试体验依旧不是很好,字节一面会有一个引导的过程,原本我不太清楚的地方,但面试官引导了一下,一下就想起来了。况且这次面试,一上来就怼跨域,项目中怎么做的,难度一个台阶一个台阶的涨,最后面试官回应:了解差不多了,后续有通知再联系。 也没有常用语:你还有什么要问我的吗? 总之,面试体验不是很好,但面试官提出的几个问题却很经典,后续又学习整理了一下。

阿里智能事业群-达摩院-机器智能技术部

介绍

这个是来自BOSS直聘上的内推,一位前端主管邀请的我投递,反正都是试一试,增加面试经验,于是在8月29日(周六)下午3点进行了30分钟左右的短暂面试。

一面

面经

1、自我介绍

2、聊实习经历

3、项目中有用到SSR,说说对SSR的理解,目前为什么要用SSR?

4、对CDN的理解

5、说一个最近刷的印象比较深刻的 leetcode 题目,讲讲思路

6、大学里面学的一些课程哪门最熟悉?

7、说说五层、七层 计算机网络模型

8、举例传输层和应用层

9、HTTP1.0 和 HTTP2.0区别有了解吗?

10、自己搭的博客目的是什么?主要写的内容是?

11、询问了大学里面图像处理课程

12、如何学习前端(或者说是如何学习计算机领域知识)

13、对未来的职业规划

14、你还有什么要问我的吗

感受

相对于字节二面来说,这一面我没有很紧张,反而在面试之前是一个很放松的状态。与面试官交流的也是比较流畅,对我了解了一些大学课程学习,然后对于图像处理那块细问了一下,毕竟部门研究的就是那一块。

滴滴-橙心优选 面经

介绍

先说一下最终结果吧,第三面凉了。9月5号下午1点开始,一直到下午4点20样子,持续三轮面试,最终倒在了第三轮。感受与总结我就放在最后吧。总体来说问的比较基础,没有深度挖掘知识点。另外,已经过了一天了,还是三面一起来的,可能会有问题遗漏掉,一般来说遗漏掉的都是比较简单,能轻松说出来的那种。

一面

面经

1、自我介绍
2、JS基本数据类型(怎么判断基本数据类型)
3、说说你对原型和原型链的理解
4、水平垂直居中的几种方式,说一说
5、说说你对深浅拷贝的理解(要求手撕深拷贝)
6、输入一个URL到渲染页面的整个过程
7、浏览器缓存有了解过嘛?说说看
8、说一个你熟悉的排序算法,然后手写一下(简单写了一个冒泡)

感受

一面问的比较基础,也是比较顺利收到了二面通知

二面

面经

1、自我介绍
2、CSS选择器优先级的理解
3、CSS定位的几种方式
4、CSS怎么清除浮动
5、display几种属性说一说
6、水平垂直居中的几种方式
7、父容器已知宽高,子容器宽高未知,怎样让子容器水平垂直居中
8、css modules你有了解过吗
9、如果组件css命名冲突,你怎么解决
10、设计模式你有了解过吗?说说单例模式
11、call、apply、bind的区别
12、普通函数和箭头函数的区别
13、项目中有用到 debounce,那你写一下防抖吧
14、实现如下效果:当点击 aaa 时输出 0 ,当点击 bbb 输出 1,当点击ccc 输出 2

<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>

15、for 遍历时,如果用 var 来声明变量 i 会有什么问题,怎么解决这个问题?
16、浏览器缓存你了解多少,说说看
17、谈谈你对 cookie 的理解,cookie 有哪些字段,说说看
18、cookiesession 的区别

感受

感觉有些问题,答的不是很好,但过了二面,手撕那块没啥问题。

三面

面经

1、自我介绍
2、聊大学经历
3、你觉得学的最好的一门课

因为网络这块知识准备的比较充足,就选了计算机网络,其它的与前端不太挂钩,也不太好扯。

4、面试官对网络这门课教学方式很感兴趣,于是扯了挺久,扯到了网络建设项目(校运动会举行),扯到了最后排名,与第一名的差距在哪
5、如果要你给一个非科班的人,讲网络这门课,你会怎么讲?
6、网络里面你认为的最熟悉的章节(说了HTTP、TCP这块)
7、那你说一下对称加密和非对称加密。为什么非对称加密更好,现在还是有用对称加密,你能说出原因吗?最好举一下生活中的例子
8、你算法和数据结构咋样,做一道题吧

上来就来了一道动态规划的题,想了一下,没啥思路,面试官就换了一道题

9、算法题:求两个数组的交集

感受

10分钟后收到了感谢信,这效率是真高啊。原以为秋招以收到滴滴意向书结束,但没想到还是倒在了三面这最后一步了。收到后不甘心是当然的,但是面试后的复盘是很重要的。

快手-效率工程面经

介绍

8月25日(周二)投递,在9月8日上午收到 HR 电话,告知简历通过了,约9月10日上午11点面试,整个面试时间1个小时左右。

一面

面经

1、自我介绍
2、你刚刚提到了项目中防抖 debounce ,你知道实现原理是什么吗?说一说
3、你家乡在哪?面试岗位在北京,有没有城市要求吗?
4、实现一个函数,以字符串形式返回参数类型

// null => 'null' undefined=>'undefined'
function getArgType(arg){
}

5、给你一个数组 [1,3,2,5] 你有多少种方法,求得最大值,说一说
6、实现如下效果:当你点击 ul 下面某个 li后,打印对应索引值(可以为 01

<ul><li></li>........</ul>
<ul><li></li>........</ul>
<ul><li></li>........</ul>

7、使用 vue 封装一个组件,实现倒计时的功能

倒计时(一个 button 按钮,有下述三种状态)
(开始-》暂停-》继续)

{count}
按钮

8、你还有什么想问我的吗?

感受

问了部门是效率工程,然后主要业务是做公司内部系统,比如各种流程处理,请假那些,然后还提到了公司封装内部聊天工具,类似于企业微信那种。然后还问了技术栈,主要用 React + Ts ,然后面试官说了技术栈都不是太大问题,主要还是 js 能力

最后,问了一下多久会有面试结果,面试官说一天之内给结果。