-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
工作两年有余,最近有机会去面试下刚毕业或即将毕业的校招生,由于之前没有当过面试官,缺乏经验,无法像其他经验老道的面试官一样可以随性地问问题,所以记录下自己打算问的问题方便到时候临场发挥。
面试不是变着法的刁难被面者,而是想办法考量和挖掘被面者的知识和潜力。
对于校招生,我更倾向于考察他的学习能力和思考能力;对于社招, 我更倾向于考察他的知识广度和深度以及系统设计能力。有些面试官在面试校招生的时候喜欢上来就出一些比较难回答的问题,希望借此考察他的抗压能力,我更倾向于循序渐进,慢慢地加大问题难度,因为校招生本来社会阅历少,容易紧张,上来就施压,可能达不到好的效果。
下面是我准备的面试题,分为 项目经历,前端基础,网络基础,算法编程,框架原理,其他。每个模块题目难度按照由易到难进行排列。
项目经历
一开始的时候,我会让面试者做个简单的自我介绍,缓解下紧张的情绪,然后看简历挑一个项目(或者让他自己挑一个)让他描述下,项目背景、项目目标用户、项目开发流程、自己负责哪块内容、有没有碰到什么问题又是如何解决的,自己有哪些收获等等,期间可以穿插着问一些基础知识。这块主要是为了考察面试者的表达能力、总结和思考能力。
如果没有项目经历,我会问他有没有写过一些博客什么的。如果既没有项目经历,又没有些博客习惯,在校成绩还一般,到这里我就会开始质疑他平时的学习主动性了。
前端基础
这块我主要会问 javascript 和 css ,至于 html 相关的,我一般不问,如果有 typescript 经验,我也会问一下对 typescript 的理解。
javascript
- 5 种基础类型,
undefined和null区别。 new一个对象背后的原理(创建空对象 ->__proto__指向prototype-> 替换this-> 判断返回值类型)。forEachmapreduce的区别- 闭包理解、应用、坏处、取消闭包、判断闭包代码片段输出、柯里化(连加)
callapplybind区别,实现一个call或bind- 怎么理解
js是单线程的说法 - 有哪些异步处理方法,有什么区别
ES6
let和var的区别- 箭头函数与普通函数区别
class继承原理import和require的区别
typescript
为什么用 ts 不用 js, ts 相比于 js 有哪些优势。
css
display: none和visibility:hidden区别css盒模型position取值有哪些,分别是什么含义css选择符和优先级计算- 实现垂直水平居中
flex布局,骰子
网络基础
- http 请求码含义
- GET / POST 区别
- http 和 https 区别
- 接口设计(原子性,鲁棒性)(有接口服务开发经验会问)
- osi 分层模型,子网掩码作用和计算,TCP 三次握手和四次挥手(有计算机背景会问)
算法编程
- 交换两个变量值(不使用三方变量)
- 斐波那契数列
- 最大值,第二大值
- 两个栈实现一个队列
- 爬楼梯(一步两步)
- 冒泡、快排
- 括号匹配
- 树深度遍历和广度遍历
框架原理
一般针对面试者使用过的框架进行提问。
react
- 初始化到挂载的生命周期
- 展示组件和容器组件
- HOC 的两种方法(属性代理和方向继承)
- key 的作用
vue
- 双向绑定原理
redux
- redux 定位,数据流,为什么需要 redux。
webpack
- loader 的加载顺序。
- loader 和 plugin 区别。
node
require原理koa中间件洋葱模型
npm
- 版本
semver version dependenciesdevDependenciespeerDependencies区别
其他
一些开放性问题。
- 为什么选择前端。
- 有收到其他公司 offer 吗。(遇到好苗子,担心被拐跑 T T)
Reactions are currently unavailable