又到了招聘旺季,互联网寒冬,公司招聘已经停止了好几个月,趁着这次准备面试知识点,也对自己做一个简单的知识点大纲梳理,也算是自己的一次学习计划,希望可以逐步把相关知识点涉及的细节都能逐步更新完善和学习。之前的阿里云忘了续费,内容没备份之前的东西都找不回了,好在域名还在直接换到coding的pages服务,重新开始做些技术相关的记录。
前端面试考察整理
- 基础前端专业知识
- 框架能力
- 进阶:设计模式 安全 性能 模块 工程 等
- 大前端:Node native
- 解决问题的能力 (一个人的不同点就来自于你解决问题的能力)
- 学新能力
- 团队协作沟通和管理经验
整理了一些问题的维度和大的知识点,以及目的,方便在面试的时候使用,自己每次会控制在40分钟 - 1小时,下面的问题作为参考,实际主要看简历面试者会什么
考察点:工作经验
问题:
- 做过的大项目有哪些? 项目中担任的角色 ? 遇到问题一般如何解决
- 团队规模? 合作人员 ?
- 使用相关的技术栈?解决了什么问题?
目的:
考察工作经验是否符合目前的工作,以及在开场先介绍一些自己比较熟悉的东西,容易打开思路吧,也可以判断出之前在团队内说承担的角色,决定后面问题的一些偏重点。
考察点:基础专业知识
问题:
CSS
- 基础的局部结构实现,各种居中,左右等高等 -> flex ?
- 移动端适配 -> 各种css单位的差别?-> css预处理和postcss?
- 清除浮动 -> BFC
- 性能优化方面 -> 重绘 重流 -> 如何触发和优化 -> 动画trans … anmiation .. 硬件加速 >* 3d 动画
- 移动端常见的问题 -> 如何解决的 -> 自适应 、0.5像素 、移动端无click、tap ?
JS
- 数据类型? -> 深浅克隆
- es6 class 继承,可以顺带下原型(不做重点)
- 作用域 -> 作用域链 -> 闭包 -> 应用(节流,防抖 区别实现)
- this 上下文 -> 改变this指向的方法 (bind call apply。) -> 箭头函数 (babel实现)> 实现一个(bind 、call…)?
- js运行时 Event loop -> 微/宏任务 -> 异步编程
- 模块化 (es common ,理解区别)、组件化
- 跨域?jsonp ?正则?图片宽高获取?跨浏览器tab通信?
- 事件(冒泡、捕获)-> 委托 -> jquery实现(委托事件怎么做到可以阻止冒泡)
- 输入url到浏览器渲染过程? -> 渲染过程怎么优化
- js es6 7 (let const? 箭头函数 ? promise async ?代理?反射?装饰器 ?)
- Promise 并发?继发?并发允许失败n次 ? -> 手撸
- 面向对象 函数式 柯里化 ?
- 开发调试:手段 -> 方法 -> 工具 -> 实例 ?
- 规范标准:编码规范 个人习惯
目的:
考察专业基础知识
考察点:框架能力
jQuery Vue/react
- jQuery事件代理,拿元素宽高 隐藏元素 ,ajax
- Vue 生命周期,各个阶段能做什么 -> 父子嵌套,生命周期怎么触发
- 响应式数据设计(Proxy ?defindProperty) ,Virtual dom ,双向绑定 ,diff 算法,patchs 更新;
- 路由,状态管理 -> 常用插件(lazyloader)-> 实现原理
- 日常开发中怎么选定框架?如何权衡?为什么 ?
目的:
考察常用框架能力,原理性了解情况
考察点:前端进阶能力
http
- 握手?缓存 ?各种头?相应? 状态码?http2 ?
性能
- 首屏 ?加载速度 ?执行效率 ? 用户体验 ? -> 如何优化,和实践结果
安全
- XSS攻击,注入恶意代码 ?
- CSRF 跨站请求伪造 防护 ?
数据结构和算法
- 常见数据结构 -> 队列 堆 栈 树 -> 应用 -> 队列实现常用的递归调用等
- 算法 -> 时间复杂度是啥 -> 排序 ?(冒泡、快排、插值 )二分查找 -> 斐波那契数列 -> 执行效率 ?更优?加缓存 ?
工程 (gulp webpack rollup …)
- 前端工程 构建,兼容性,持续集成 -> 部署 、优化等
- webpack -> 构建优化 -> 资源提取优化 -> 遇到的问题如:css资源提取问题 -> 速度优化;
- npm 脚手架
大前端
- node -> Koa 、 Express
- 后端技术 、数据库
- native ( react native , weex ) ssr -> 同构
开放性问题
- 循环一棵树 -> 递归 优化,非递归方案
- 设计一套错误和性能收集上报系统
- 说说自己实现的比较有趣或者成就感的东西
目的:
考察前端 安全 性能等进阶能力
考察点:团队能力和个人价值
- 沟通?清晰 有条理的表达自己?
- 能管理多个项目,并进行关键技术攻关?
- 主导或带领小型团队完成过项目?
- …
目的:考察团队协助和个人在团队内的贡献方面
考察点:学习创新
- 最近学习的技术 ?在项目中是否有应用 ?
- 对前端的前景看法? 是否有明确的学习计划?
- 了解的新技术?使用它们解决了什么问题?
- …
目的:是否具备较好的学习创新能力,以及做到学以致用而不只是学
考察点:团队管理
- 是否带过团队?团队规模?什么方法保证了人员协作?
- 怎么去提升团队的开发效率和开发质量?
- 遇到的棘手问题?如何解决?
- 比如目前项目要一直加班,团队成员都很不耐烦了,你会怎么处理
- …
目的:考察面试者在团队管理的经验和能力,是否能带来较好的管理方法
考察点:期望发展
- 喜欢/不喜欢什么样的团队 ?
- 喜欢/不喜欢什么样的管理风格 ?
- 对新工作,最看重的方面?
- 接下来的发展规划和自我定位?
- 为什么选择跨境电商行业?
- 为什么选择来我们公司面试?
- …
目的:判断面试者的期望和规划是否与公司提供的相符合,和团队及工作的适配都如何
面试者问答