前端已经是一门开始走向强势的it行业,越来越多的专业术语齐平其它后端语言。
如果想要面试高级前端,那么需要很高的专业能力,一些技术术语就不可能不熟悉了。
一、前端工程化
1、前端工程化的概念:是根据软件工程,将前端统一标准化;将前端开发的规范、流程、技术、工具、经验等形成规范并建立成一种标准的体系。
2、前端工程化的特点:前端工程化有四个特点:模块化、组件化、自动化、规范化。
1)模块化
模块化是最近前端比较火热的技术,最要就是将代码分开打理,避免过分的耦合。
可以选择的模块化的方案还是特别多的,AMD/CommonJS/UMD/ES6 Module等等。每一个模块化的代表方案都有成熟策略,大家可以自行研究探讨哦。
2) 组件化
组件化就是将代码写成更好维护的一个个组件,然后通过一定的方式引入项目中,从而达到分离合并的效应。
3、前端工程化的原因:促使前后端分工细致,将前后端的侧重点得到保证,让前端项目实现自我管理、在UI设计上得到好的用户体验上代码得到模块化管理,项目得到更快捷、更高效的发展。
3) 自动化
自动化的意思也是可以从字面理解的,比如说vue脚手架的使用,大大增加了项目构建和运作的便利性,让程序员更大程度的关注项目的业务而不是影响它的底层问题或者代码压缩打包等问题。
任何简单机械的重复劳动都应该让机器去完成。
- 图标合并
- 持续集成
- 自动化构建
- 自动化部署
- 自动化测试
这是软件开发给我们的经验。
4) 规范化
规范化就是项目工程化中一个重要点,如果仅仅是贪图一时开发的速度,而缺少了一些约定成俗或者注释,那么后期维护成本将会大大提升,从而最终影响项目整体的开发质量。开发规范包括但是不限于:
- 目录结构的制定
- 代码readme需要有一定的注释
- 编码规范(语言的特性要了解清楚,语法、兼容hack、注释、换行、业务提示等都需要有一定的解释)
- 前后端接口规范(接口文档需要写得明白清楚)
- 文档规范
- 组件管理
- Git(svn)分支管理
- Commit描述规范(每次提交代码的时候都必须要认真写好为何提交代码,是新功能还是修改了某些bug)
- 定期CodeReview
- 视觉图标规范
- UI的线条和基础颜色或者风格保证统一
- 等等
4、前端工程化的工具
前端工程化的工具,非常多,但是经常使用的也就是几个而已,都是对项目进行一定的自动化处理,以求减少开发者的开发时间,省去不必要的重复劳动,比如说进行代码的压缩、预编译的css代码、图片的base64处理或者生成雪碧图等等。
由于webpack是vue等前端框架所钟爱,所以,它的使用变得尤为频繁且重要,这也是很多公司招聘的时候都会标准要熟悉webpack的原因。
二、库类
这个方面,有一年工作经验以上的前端工程师都应该不会陌生的啦。
比如14年以前我们很喜欢的框架类库jquery、backbone.js、bootstrap等等(像vue、react、angular之类改变了整个项目的构建和编译的我才认为是框架,其它的类框架也称为库吧)。
还有
Particles.js— 一个用来在 web 中创建炫酷的浮动粒子的库
Three.js — 一个用来在 web 中创建 3d 物体和 3d 空间的库
Fullpage.js— 快速实现全屏滚动特性
Chart.js — 使用 JavaScript 创建漂亮的图表
Animstion — CSS 实现动画过渡的 jQuery 插件
Velocity.js — 快速流畅的 JavaScript 动画
等等一些js库,选择库的时候,一定要考虑好它的大小、以及项目重复利用的效益。
三、熟悉各种web标准
这个基本上都是web规定的一些规则了,改动的频率不会太大,只要保证能够将旧的规范了解清楚。
Web标准是由一系列标准组合而成。一个网页主要由三部分组成:结构层、表现层和行为层。对应的标准也分三方面:
- 结构化标准语言主要包括XHTML和HTML以及XML,
- 表现层标准语言主要包括CSS,
- 行为标准主要包括对象模型,DOM、ECMAScript等。
要问的内容其实真实不多,也就是一些基础的html或者css类的比较多罢了。
四、熟悉HTTP协议,了解TCP/IP
这些内容网上是很多答案的。但是,面试官一般都是想要了解你对web相关的一些基础知识的了解和理解,如果你理解得比较彻底,那么自然能够在这一块回答得比较自信,加分项。比如说,比较经典的题目: url输入到搜索引擎按回车键,到底发生了什么?
以上,都是高级前端去面试的时候需要了解的基础知识点,很多公司都会将它们写入到招聘的要求中的。面试的时候一定要注意理解面试官的题目,然后结合自身的知识储备和经验,回答一定可以惊艳面试官的。