FE俗称前端,是区别服务端开发的一个新的开发类职位,但目前随着FE自身能力的一些完善,以及Node.js的流行,现在一些服务端的一些需求也放在前端来开发,对应的语言可能是PHP,Node.js,Python,Ruby等,这就是所谓的大前端,与之相对应的后端开发跟倾向于对性能要求比较高的C,C++的开发。拿百度地图的业务架构来说,诸如检索,定位等一些基础服务是作为后端来开发的,而具体到各个产品线是上面提到的一些后端语言再与前端语言(CSS,JS)进行配合,对应测产品线诸如百度地图PC版,Webapp(手机浏览器打开百度地图)以及百度地图客户端一些更新比较频繁的一些页面。
FE需要做的东西很多,不仅仅说吧UE给的UE图切出来就OK了,当然这也是前端很重要的一部分,因为你不仅需要实现UE图效果,还要兼容各种浏览器,不仅需要功能完整,还要兼顾性能,任何一方面都不能却是。具体来说,前端需要掌握的知识有:
1)HTML
熟悉html各种标签及属性的含义,并能够合理使用html标签(html语义化);熟悉常见的几种DocType,并能够理解这些差异给页面布局所带来的变化;html5有哪些新的标签,又是怎么运用的。
2)CSS
相较于html来说,CSS更像一门语言,特别是Sass和Less等对CSS拓展之后,或者可以说是设计师的一中布局语言。作为一门语言,需要掌握的知识点要比html多出很多。面试中常常问到工作中也常常用到的一点就是盒子模型,盒子模型的分类,盒子模型的一些细节性的知识,比如标准流下两个定宽且在一行的div,当左边的div有一个左margin,右边div有一个右margin,两个div外边框之间的距离是多少,当量div是上下相邻是有怎样,如果对两元素加了float又如何;如果学习的比较深入的话要搞清楚clientHeigh和scrollHeight的区别,offsetTop和clientHeight的关系又如何;网页的一些常见布局也需要熟悉,比如要做一个左边定宽右边自适应你会运用哪种技术选型,是用float,绝对定位还是其他,各种技术选型之间有什么优势和劣势;再一个就是CSS所代表的含义,不是说说出Cascading
Style
Sheets就算完事了,它的Cascading体现在什么方面,它的继承又指什么,html的哪些属性是可以继承的;CSS选择器的权重又是如何划分的,!importent又处在一个什么样的位置;CSS引入到页面中的方式有哪几种,3种方式又有怎样的不同;position,absolute等常用的一些属性有哪些,他们常见的属性值都有什么,各属性值都代表什么含义;还有一块非常重要的内容就是页面的兼容,你需要深刻认识各属性的涵义,熟悉一些常见的hack;最后还有很多常见的技巧性东西,比如reset.css包含哪些内容,clearfix又代表什么意思,css的一些属性的简写规则是怎样的,一个元素挂两个class他们的覆盖关系是怎样的等等等等
鉴于时间关系,先介绍到这里,明天会梳理一下Javascript的脉络及常见知识点并给大家介绍下JS中非常重要的一块内容Javascript作用域链。。。。
水平有限 疏漏之处还请指教