我们在经历过入门得阶段,已经了解了前端要做什么,并且把基本得语法学习过了可以独立做一些简单的页面了,那么就要继续学习达到初级前端工程师的水平,对于初级的前端工程师需要了解的就特别多了。
初级前端工程师首先要知道的就是如何处理各种浏览器的兼容处理(比如:在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 ,table 等标签页很常用,nav, section, article, header, aside , footer 等语义化标签也需要了解一下。
除了要了解上面这一些标签之外,还需要对一些新的html5的API有一定的了解:
audio,video标签
canvas:定义图形,比如图标和其他图像
input标签的accept属性,email,phone,url等类型
getElementByClass根据class名来获取一个元素节点
Multiple file selection 多文件选择属性
html的import template
process标签,webGL等内容
还要一些要知道的知识点:
- doctype的作用
- unicode,utf8等编码的原理和区别
- 如何进行页面性能优化
- png,jpg,webp,gif等图片格式的不同的优势
- html行内元素与块级元素的区别
- 移动web端开发常用head标签
- web语义化
- 浏览器中的缓存原理
css
关于css这一块,我的看法就是网上下载一个chm格式的css的参考手册,然后根据手册里面写的一个个的都敲一下。
css答题分为下面这几块知识点:
①定位布局
- position属性的7个值(static | relative | absolute | fixed | center | page | sticky )分别有什么作用和不同?
- 实现品字形布局或者三栏布局(左右宽度固定,中间适应屏幕)
- 浮动和清除浮动的方法,flex布局,grid布局
②盒子模型
- margin ,padding , border 这三个属性
- 伸缩盒相关内容
- Multi-column Layout Module多列布局模型
③文本字体
- 强制换行与不换行,清除空白
- 文本对齐,大小(如何设置chrome小于12px的字体),缩进,转换。
- 单位(em,rem,px等),颜色(rgb,rgba,hls)
④变换,过渡和动画
- transform的各种取值的作用与兼容性
- transition过渡的动画类型,贝塞尔曲线的原理
- animation动画的各种设置,@keyframes规则
- 浏览器的重绘和重排
⑤选择器
- 选择器的分类,权值和优先级
- 有哪些属性可以被继承,哪些属性没法继承
- 伪类和伪元素分别是什么,有什么作用
上面这些都是基础的东西,除了这些基础的内容之外需要了解less , sass ,stylus等css预处理器,这将会大幅度提升你的css开发效率,也需要了解一下Autoprefixer,PostCSS等css后处理器
javascript
在这里就不说js的基础知识了,我把js按照语法的层次和使用的层次分为了两大块。
按照语法的层次来说:
首先是javascript的面向对象方面的内容:在javascript中实现封装,继承和多态。
①封装:在js中可以通过闭包,作用域和作用域链来实现封装,ES6的const,let的作用
②继承:基于原型链的继承,基于构造函数的继承,组合式继承,寄生式继承等,外加ES6的class关键字,prototype和_proto_
③多态:在javascript中多态是使用arguments来实现的,关于arguments
会引申出来很多内容:
- arguments的caller,callee等方法的作用
- 方法的apply和call的作用和不同
- 使用Array.prototype.slice.call来把一个数组对象转化为数组
- array的各种方法,如shift , splice ,push ,filter ,map ,reduce ,forEach等等
然后是js的设计模式,比如说那三种工厂模式,建造者模式啊等等
最后是在不同情况下的this分别都代表什么
按照使用的层次来说:
首先最主要的就是ajax,ajax的原理,ajax跨域的方法jsponp,使用iframe的location.hash, postMessageAPI , websocket,服务器代理等等
然后是tcp协议,udt协议以及http协议的协议头,状态码等内容。
浏览器的缓存,客服端存储方面的内容:localstorage,sessionstorage,indexDB,cookie等等
最后是一些新的js的API,例如文件读取(fileReader),fetch,Promise,WebSockets等等内容,可以去caniuse上面看一下有哪些新的东西。
上面我所说的这些只是一些比较笼统的概念,把前端html,css和javascript所需要掌握的部分内容列举了一下,在前端领域还有很多需要我们知道的知识,这需要大家在学习工作的过程中自己总结
微信公号搜索:李大头头。(或扫描二维码)找我来玩。
更多【前端技术群】和【内推职位】 资源等着你。
还不定期在公众号请大家喝奶茶!
想与我聊聊或者有什么问题都可以在公众号找到我。
等你哟~