一个初级的前端工程师需要知道些什么?

按照我的想法,我把前端工程师分为了入门、初级、中级、高级这四个级别入门级别指的是了解什么是前端(前端到底是什么其实很多人还是不清楚的,底什么是前端后端、后台),了解基本的html、css和javascript语法,可以根据设计师的设计图在不考虑兼容性的情况下把页面做出来,了解过一些框架的使用(例如烂大街但是依然牛逼的jQuery、zepto、bootstrap等等)

在经历过入门的阶段,已经了解了前端要做什么,并且把基本的语法学习过了可以独立做一些简单的页面了,那么就要继续学习达到初级前端工程师的水平,对于初级的前端工程师需要了解的就特别多了,需要对整个前端有一个清晰的认识,并且熟练使用各种技术,我感觉在校的学生达到初级水平就可以通过bat的校招笔试面试了(看到这里,您先不要吐槽,先把我下面说的初级水平需要掌握的东西看一下之后再来评论我说的有没有过)。

初级前端工程师首先要知道的就是如何处理各种浏览器的兼容处理(比如说在IE浏览器中的createElement有什么不同等等内容),现在基本上每个公司在招聘的时候都会要求熟练html5, css3, javascript,这个熟练的意思就是信手拈来,在下面会说初级前端工程师应该具体的学习哪些知识,然后就是要了解各种css的预处理器和后处理器,还有会使用常见前端的MV*框架(angularjs, backbone,reactjs等等)并知道这些框架的原理,另外就是要熟练使用nodejs,要会使用基于node的各种前端构建工具(grunt,gulp等等),熟练使用github或gitlab,对模块化、组件化、工程化、语义化有一个比较深入的了解,最后要知道如何开发移动端的页面,如何去优化一个页面的性能。

初级前端工程师的技术体系

目前在网上有很多关于技术体系的文章,但是几乎都是在一个很笼统的方面来介绍技术栈,这里我就给把那些笼统的概念给分解开,详细的来说一下需要掌握的知识内容。

html部分

首先是要掌握一些常用标签的使用和他们的各个属性,这些常用的标签我总结了一下有以下这些:
html:页面的根元素。
head:页面的头部标签,是所有头部元素的容器。
body:页面的主体标签,页面展现的内容就放置在这里面。
title:页面的标题。
meta:位于文档的头部,提供页面的元信息,包括关键字、描述等等。
link:定义文档与外部资源的关系,最常用的用途就是引入样式表。
script:脚本标签,可以把js脚本代码放置在这个标签内,也可以使用这个标签的src属性引入一个外部标签。
style:样式标签,可以把css代码写在这个标签中。
a:超链接,href属性代表要链接到的地方,target属性代表打开方式。
img:图像标签,src属性表示图片的位置。
form:表单元素,它内部的input、select、textarea等标签都是比较重要的。
div:定义文档中的分区或节,可以使用div来进行页面的布局等操作。
另外还有ul、li、p、button、iframe、p、table等标签也很常用,nav、section、article、header、aside、footer等语义化标签也需要了解一下。

除了要了解上面这一些标签之外,还需要对一些新的HTML5的API有一定的了解:

audio、video标签。
Canvas:定义图形,比如图表和其他图像。
input标签的accept属性,email、phone、url等类型。
getElementByClassName根据class名来获取一个元素结点。
Multiple file selection多文件选择属性。
html的import、template
process标签,webGL等内容。

还有一些要知道的知识点:

1.doctype的作用。
2.unicode、utf8等编码的原理和区别。
3.如何进行页面性能优化。
4.png、jpg、webp、gif等图片格式的不同的优势。
5.HTML行内元素与块级元素的区别。
6.移动web端开发常用head标签。
7.web语义化。
8.浏览器中的缓存原理

css部分
关于css这一块,我的看法就是网上下载一个chm格式的css的参考手册,然后根据手册里面写的一个个的都敲一下。

css大体分为下面这几块知识点:
① 定位布局
1.position属性的7个值(static | relative | absolute | fixed | center | page | sticky)分别有什么作用和不同?
2.实现品字形布局或者是三栏布局(左右宽度固定,中间适应屏幕)。
3.浮动与清除浮动的方法,flex布局,grid布局。

② 盒子模型
1.margin、padding、border这三个属性。
2.伸缩盒相关内容。
3.Multi-column Layout Module多列布局模型。

③ 文本字体
1.强制换行与不换行,清除空白。
2.文本对齐、大小(如何设置chrome小于12px的字体)、缩进、转换。
3.单位(em、rem、px等),颜色(rgb、rgba,hls)。

④ 变换、过渡和动画
1.transform的各种取值的作用与兼容性。
2.transition过渡的动画类型,贝塞尔曲线的原理。
3.animation动画的各种设置,@keyframes规则。
4.浏览器的重绘与重排。

⑤ 选择器
1.选择器的分类,权值和优先级。
2.有哪些属性可以被继承,哪些属性没法继承。
3.伪类和伪元素分别是什么,有什么作用。

上面这些都是基础的东西,除了这些基础的内容之外需要了解Less、Sass、stylus等css预处理器,这将会大幅度提升你的css开发效率,也需要了解一下Autoprefixer、PostCSS等css后处理器。

javascript部分

在这里就不说js的基础知识了,我把js按照语法的层次和使用的层次分为了两大块。

按照语法的层次来说:
首先是javascript的面向对象方面的内容:在javascript中实现封装、继承和多态。
① 封装:在js中可以通过闭包、作用域和作用域链来实现封装,ES6的const、let的作用。
② 继承:基于原型链的继承、基于构造函数的继承、组合式继承、寄生式继承等,外加ES6的class关键字,prototype和__proto__。
③ 多态:在javascript中多态是使用arguments来实现的,关于arguments会引申出来很多内容:

1.arguments的caller、callee等方法的作用。
2.方法的apply和call的作用和不同。
3.使用Array.prototype.slice.call来把一个数组对象转化为数组。
4.array的各种方法,如shift、splice、push、filter、map、reduce、forEach等等。

然后是Js的设计模式,比如说那三种工厂模式啊,建造者模式啊等等。
最后是在不同情况下的this分别都代表什么。

按照使用的层次来说:
首先最主要的就是ajax,ajax原理,ajax跨域的方法:jsonp、使用iframe的location.hash、postMessageAPI、websocket、服务器代理等等。
然后是tcp协议、udt协议以及http协议的协议头、状态码等内容。
浏览器的缓存,客户端存储方面的内容:localstorage、sessionstorage、indexDB、cookie等等。
最后是一些新的js的API,例如文件读取(fileReader)、fetch、Promise、Web Sockets等等内容,可以去caniuse上面看一下有哪些新的东西。

时间: 2024-08-07 20:53:43

一个初级的前端工程师需要知道些什么?的相关文章

想做web前端工程师应该学习些什么?

偶然间看到这篇文章,感觉博主写的挺不错的,如果你想做web前端工程师的话,建议您阅读以下这篇文章,其实web前端工程师所做的工作其实就是网站设计,有些小公司的美工其实就是做web前端的.这篇文章对于想学web前端工作的人有很大的帮助,如果您是做SEO的,也建议您学习下博主推荐的这些课程,或许对你以后的职业.薪资都有很大的帮助! 遇到很多新手,都会问,如果要学习web前端开发,需要学习什么?难不难?多久能入门?怎么能快速建一个网站?工资能拿到多少?还有些让我推荐一些培训机构什么的要去学习.我建议是

一个合格的前端工程师必看的书籍

以我的经验,大部分技术,熟读下列四类书籍即可. 入门,用浅显的语言和方式讲述正确的道理和方法,如head first系列 全面,巨细无遗地探讨每个细节,遇到疑难问题时往往可以在这里得到理论解答,如Definitive Guide/Programming xx系列 实践,结合实际中经常遇到的情景环境,来描述如何设计和解决问题,如cookbook系列 深入,讲解一些文化,思路,甚至于哲学上的东西,真正做到深入一种语言去编程,如unix编程艺术,程序员修炼之道等等 那么,目前为止我认为最好的书是: c

如何称为一个优秀的前端工程师?

最近在实验室很受打击,导师给的任务没有很好的完成,我能感受到导师的失望,同时对自己也失去了自信心.自信心是非常重要的一件事情.所以我需要思考我到底在不就的将来想从事什么工作.最近也是在一直不断地摸索中. 这几天想学前端,我也知道像我这样浮躁是做不成事情的,我尽量能够让自己稳定下来.希望好好学习前端吧. 首先我认为需要明白前端是什么,我认为的前端,是与人交互的接口.这是我当前的理解.在计算机中功能模块的解耦在有些地方能简化开发,使得产品容易维护等优点.所以现在讲究前端后端的分离.在前端中,HTML

如何成为一个优秀的前端工程师?

一.英语. 由于大部分优秀的新技术几乎都来源于欧美国家,因此依赖官方的汉化资料往往需要等待很长的时间.等中文资料已经满大街了,同时可能表明这种技术已经过时了.因此流程阅读英文材料必须作为一个优秀程序员的必备技能.如何提升英语阅读能力?1.订阅一些优秀的国外技术作者或者机构的Blog.2.使用框架或者库的时候不依赖中文资料,先从英文文档读起.3.学会FQ,使用google.4.多关注优秀的技术社区: github.stackoverflow 二.修练内功1.计算机基础:算法.数据结构.操作系统.网

成为一名优秀的web前端工程师都需要做些什么?

程序设计之道无远弗届,御晨风而返.———— 杰佛瑞 · 詹姆士 我所遇到的前端程序员分两种:    第一种一直在问:如何学习前端?    第二种总说:前端很简单,就那么一点东西.     我从没有听到有人问:如何做一名优秀.甚至卓越的WEB前端工程师.    如果成为一名优秀的web前端工程师(前端攻城师)? 何为:前端工程师?前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript!它要求前端开发工程师

如何成为一名优秀的Web前端工程师?

何为:前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript!它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性.组件的易用性.分层语义模板和浏览器分级支持等.随着近两三年来RIA(Rich Internet Applications的缩写,中文含义为:丰富的因特网应用程

我在2016年是怎么转行做前端工程师的

十月底接到面试通知,到从上一家单位辞职仅仅用了一天的时间.然后看着四百多一天的酒店,我选择了六十块的青旅.还好来北京后一切都算是顺利,面试过程整体很流畅,青旅住了一礼拜offer就基本定下来了,再让我等一个礼拜估计睡青旅的木板床就该把我的骨头睡散架了吧. offer拿到后就开始找房,还好单位在北京五环外,一间十三平的屋子一千七百的价格至少在北京来说也不算是贵了(之后从同事那里听说,其实还能租到更便宜的).来北京的时候就带了三千多,东拼西凑从朋友那里借了一万多,交完房租基本就是吃土的生活了,想一想

如何成为一名优秀的web前端工程师[转]

程序设计之道无远弗届,御晨风而返.———— 杰佛瑞 · 詹姆士 我所遇到的前端程序员分两种: 第一种一直在问:如何学习前端? 第二种总说:前端很简单,就那么一点东西. 我从没有听到有人问:如何做一名优秀.甚至卓越的WEB前端工程师. 何为:前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业. Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript! 它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础

如何做一名优秀、甚至卓越的WEB前端工程师

程序设计之道无远弗届,御晨风而返.———— 杰佛瑞 · 詹姆士 我所遇到的前端程序员分两种: 第一种一直在问:如何学习前端? 第二种总说:前端很简单,就那么一点东西. 我从没有听到有人问:如何做一名优秀.甚至卓越的WEB前端工程师. 何为:前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业. Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript! 它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础