Web 前端面试小知识

简历投递

前期为了解自身短板, 可以海投一些试试. 不建议长期海投简历, 对用人单位简历筛选和你自身都没什么好处. 投简历之前最起码要关注以下几点(薪资范围, 公司位置, 职位要求, 是否为培训机构冒充招聘).

前端职位类型

现在前端招人分的挺细了, 下面是我印象中几种职位.

  • Web 前端开发工程师 (页面重构方面和JS逻辑方面)
  • HTML5 前端开发工程师 (一般都是移动端或者 canvas 做游戏)
  • WebGL 前端开发工程师 (这是数据可视化的, 三维实时展现数据)
  • APP 前端开发工程师 (应该混合 App 开发、RN 都算这里面)
  • 微信小程序、公众号开发 前端开发工程师 (我是不准备选, 可能小公司会专门找人做这个)
  • PHP/JAVA 前端开发工程师 (公司可能前后端没有完全分离)
  • React 前端开发工程师 (做大项目的居多, 业务逻辑复杂)
  • Nodejs 工程师 (写服务端的, Node 处理高并发很优秀, CNode 社区很多招的)

公司类型

每个公司的技术栈是不同的, 招人也会倾向于你简历的技术栈.

  • 稳健型 使用 jQuery 等历史悠久类库, 一般不用 3 大框架, 重视 JQuery, JS, HTML + CSS 基础和实际效果实现
  • 潮流型 普遍大公司或者中小型公司, 会使用 Angular, Vue, React 等框架, 会问框架的具体使用和下面我写的那些东西, 原理偏多,很少问 jQuery.
  • 基础型 页面重构&效果呈现, CSS3 + HTML5, 基础 JS 能力, 招你可能就是写页面或者活动页之类的
  • 偏门型 招你专做小程序&微信相关东西, 或者WebGL,D3之类的做数据化展示,比较高深,恩..
  • 疯癫型 不知所云, 把面试当公司宣传活动或者拿面试题打击你, 我没遇到过, 有人遇到过, 是我的话, 离远点, 只是个人建议.

不管到哪里, 基础都很重要, 恩, 随机应变也很重要.

面试官考教流程

  • 你的笔试题, 根据其做延伸.
  • 你的简历, 技术栈、工作外学习情况、项目经验. 第一页很重要, 最好都能掌握, 有亮点更好.
  • 面试官额外的延展的知识点, 随机问,看你运气和积累(一般会提及到 ES6、解决实际问题的方法、数据结构与算法都有可能).

应对

  • 刷题, 各种基础题会帮你快速回忆起来, 比你看书快, 如果基础不好的话, 看书好好学学吧.
  • 简历上自己写的东西, 要能说出来.
  • 积累, 每次面试不成功就回来填坑吧, 还是有掌握不到位的. 我觉得能坚持下来的话, 找工作只是时间问题.

面试着重点分类

根据公司业务不同, 着重点不一样, 公司能把你简历挑出来, 就说明有用人单位感兴趣的部分.

  • 可能你写的是 熟练使用 Vue, 公司也是这个技术栈.
  • 可能你知识写的全面, 公司想面面你实际掌握怎么样.
  • 可能你项目写的贴合用人单位需要, 比如都是做后台管理的.

框架问题: (Vue 举例, 3框架实质问题差不多, 具体有些差异)

  • 封装过哪些组件?有自己写过 UI 组件吗?
  • 什么是 MVVM , 和 MVC 是什么区别, 原理是什么?
  • 父子组件怎么通信的?
  • 兄弟组件怎么通信的?
  • 生命周期有哪些, 怎么用?
  • Vue 全家桶都用过哪些?具体怎么用?

HTML5 + CSS3

  • 盒子模型
  • 如何给未知宽高的图片垂直居中对齐? 有几种方法?
  • 移动端的 rem 布局.
  • 前端可以做哪些优化, 或问你 SEO, 基本都问.
  • 清除浮动方式和原理, 基本都问. 几种方式? 原理? 为什么要用伪元素? 具体代码怎么写,为什么这么写?
  • 清除浮动就会涉及到 BFC 的问题.
  • 给你实际页面例子, 让你口述布局或手写实现细节, 可以使用几种方法, 怎么写兼容性好, 拓展性好.
  • 具体 API 哪个 CSS 版本的?
  • CSS3 新增了哪些 API?
  • 可能问你哪些 API 是 CSS 哪个版本的? 兼容性怎么样.
  • CSS hack 是什么? 包含什么? 怎么处理兼容性问题?
  • HTML5 新增了哪些 API? 哪些比较常用? 用来做什么? 实际怎么用?
  • cookie, session, localStrorage, sessionStorage 区别, 具体怎么用代码去操作?

JavaScript

  • 变量声明提升的问题.
  • 闭包的原理, 闭包的各种题, 基本都问.
  • DOM2 事件流, 冒泡和捕获问题?
  • this 指向问题, 一般都是在笔试题里, 拿着问你, 问的比较多.
  • call 和 apply 区别? 有的还会加问 bind?
  • 面向对象编程中的继承问题, 原型链问题在笔试题里比较常见.
  • jQuery API , 各种操作 DOM 用法, 还有一些新的 API, 这种在不用 3 大框架的公司会问的很详细.
  • 可能有些考算法结构的, 可以了解一下, 一般前端掌握的很少.
  • Ajax 基本都问, 问的细节可能不同, 比如 get 和 post 有什么区别?
  • 数组的方法 - es6 以下基本都能熟练使用, 应该会加分不少
  • 字符串的方法 - 拼接, 截取, 带些正则
  • 数组去重问的挺多的(解法很多, ES6 有很多简短写法)
  • ES6 的 Promise , 很多都会问. 如果公司用框架或者你写了, 还会问你 Class.
  • var, let, const区别, 问的多.
  • 栈和队列结构, 有的会问.
  • 跨域问题: 同源策略, 解决方案, 解决原理(比如 jsonp 的原理), 这里都是高发区.

其他

  • url 解析过程.
  • 缓存的原理.
  • TCP 3次握手.
  • HTTP 协议.
  • 看过哪些技术书籍? 可能直接问你书里的东西, 个人觉得至少 2 本以上储备量吧.

项目

问你用过什么技术, 用过哪些插件解决什么问题之类的, 了解一下你的技术栈.

那些开发用的插件和技术名词最好回想, 整理一下, 不要面试的时候蒙了.

  • 负责什么模块?
  • 使用到的技术?
  • 遇到过什么难题?
  • 怎么解决的?
  • 工作之外的学习情况? 一般会从侧面了解一下
上一篇:RHEL 集群(RHCS)配置小记 -- 文档记录


下一篇:H5前端的行业知识