【初家必读】:前端工程师的知识系统

产图是前者工程师图解:

图片 1

前端开发的着力是HTML + CSS +
JavaScript。本质上其构成一个MVC框架,即HTML作为信息模型(Model),CSS控制样式(View),JavaScript负责调度数据及落实某种展现逻辑(Controller)。

HTML


1.标签的归类

  • 标签表示一个元素

  • 照性质划分: Block-Level和Inline-Level

  • 仍语义划分:

Headings: h1, h2, h3, h4, h5, h6Paragraphs: pText Formatting: em,
strong, sub, del, ins, smallLists: ul, li, ol, dl, dt, ddTables:
table, thead, tbody, tr, th, tdForms and Input: form, input, select,
textareaOthers: div, span, a, img, HTML5: header, footer, article,
section

2.XHTML

XHTML 于2000年之1月26日成 W3C 标准。W3C 将 XHTML
定义为新型的HTML版本。XHTML 将慢慢代替 HTML。XHTML是由此把 HTML 和 XML
各自的助益加以结合形成的。XHTML 语法规则如下:

  • 属性名和标签号必须小写

  • 属于性值必须加引号

  • 性能不能够简写

  • 据此 Id 属性代替 name 属性

  • XHTML 元素必须吃正确地嵌套

  • XHTML 元素必须于关

3.签的语义化为达语义而标记文档,而无是为样式,结构可以的文档可以向浏览器传达尽可能多之语义,不论是浏览器在掌上电脑还是最新的桌面图形浏览器。结构可以的文档都能够望用户传达可视化的语义,即使是于老的浏览器,或是在吃用户关闭了
CSS
的当代浏览器中。同时组织可以的HTML代码也促进搜索引擎索引而的网站。(web前端上交流群:328058344
禁止闲聊,非喜不进!)

  • 不用以table布局,table是因此来表格显示的。

  • 甭到处滥用div标签,div是用来分块用的

  • 毫不采用样式标签,如font, center, big, small, b,
    i,样式可以为此CSS来支配,b和i可以就此strong和em来替代。

  • 永不使换行标签和空格来支配样式,请用CSS。

  • 尽可能不要使用内联CSS

CSS

1.基础

  • 层叠和继续

  • 优先级

  • 盒模型

  • 定位

  • 浮动

2.进阶

  • CSS Sprite:CSS
    Sprite主要用来前端性能优化的平栽技术,原理是通过将大半布置背景图片合成在同等摆设图片上之所以减少HTTP请求,加快载入速度。

  • 浏览器兼容性:绝大部分情景下我们需要考虑浏览器的兼容性,目前方以的浏览器版本非常多,IE6,
    IE7, IE8, IE9, IE10, Chrome, Firefox, Safari。

  • IE HasLayout和Block Format Content:IE HasLayout是一个 Internet
    Explorer for
    Windows的私有概念,它控制了一个素如何展示与约其蕴含的内容、如何跟其它因素交互与建立联系、如何响应和传递应用程序事件、用户事件相当。这种渲染特性可通过某些
    CSS 属性被不可逆转地接触。而有点 HTML
    元素则默认就有着”layout”。目前只有IE6和IE7有其一概率。BFC是 W3C CSS
    2.1
    规范被之一个定义,它决定了元素如何对那情展开定位,以及同另外因素的涉及及相互作用。这个实际上与浏览器的兼容性有关,因为绝大部分底兼容性问题都是它引起的。(web前端上交流群:328058344
    禁止闲聊,非喜不进!)

  • CSS
    Frameworks:CSS框架是同一多元CSS文件之集合体,包含了核心的元素重置,页面排版、网格布局、表单样式、通用规则等代码块,用于简化web前端开发的劳作,提高工作效率。目前大框架来:

960 Grid System 
Blueprint CSS 
Bluetrip 
Minimum Page

或者一个较出名和新鲜之框架是Twitter的Bootstrap。Bootstrap是高效开Web应用程序的前端工具包。它是一个CSS和HTML的成团,它使用了新型的浏览器技术,给你的Web开发提供了时尚之版式,表单,buttons,表格,网格系统等等。它是冲Less开发的。不支持IE6,在IE7和IE8里效果呢无咬地。

CSS3:

虽CSS3尚从来不标准成为业内,但是连IE9+, chrome,
Firefox等现代浏览器还支持CSS3。CSS提供了广大在先要因此JavaScript和切图才能够搞定的力量,目前重中之重力量产生:

圆角 
多背景 
@font-face 
动画以及逐渐变 
渐变色 
Box阴影 
RGBa-加入透明色 
字阴影

  • CSS性能优化:CSS
    代码是控制页面显示样式和力量的无限直接“工具”,但是于性质调优时她们一般为
    Web 开发工程师所忽视,而实质上不标准之 CSS
    会对页面渲染之频率有严重影响,尤其是对结构复杂的 Web 2.0
    页面,这种影响愈来愈不可磨灭。所以,写来标准之、高性能的 CSS
    代码会极大的增强应用程序的频率。

  • LESS and SASS:CSS 预处理器,用来呢 CSS
    增加一些编程的底风味,无需考虑浏览器的兼容性问题,例如你可以于 CSS
    中运用变量、简单的程序逻辑、函数等等在编程语言中之有的核心技术,可以叫你的
    CSS
    更展现简洁,适应性更强,代码更直观等很多补。SASS基于Ruby开发。LESS既然好在客户端运行,也可凭借Node.js或者Rhino在劳务端运行。

javascript


1.基础

  • 数据类型

  • 变量

  • 表达式与运算符

  • 操纵语句

  • 函数

  • 异常

  • OO

  • 事件

  • BOM

  • 闭包

2.进阶

  • DOM:DOM即文档对象模型,HTML DOM
    定义了访问和操作HTML文档的正式方法。几乎拥有的现世浏览器都能充分好的支持DOM了。

  • JSON:(JavaScript Object Notation)
    是平种植轻量级的数据交换格式,易于人阅读和编辑,同时为易机器解析及转移。是时下实际上数据交换的正规化格式,几乎拥有语言都支持JSON,比XML强太多了。

  • AJAX:即“Asynchronous JavaScript and XML”(异步JavaScript和-
    XML),AJAX并非缩写词,而是由Jesse James
    Gaiiett创造的名词,由Google发扬光大。用于创造更好又快和交互性更胜的
    Web 应用程序的技巧。

  • JavaScript
    Frameworks:极大简化我们JavaScript编程的工作量,它主要提供了以下几个举足轻重职能:
    DOM操作,跨浏览器兼容性,以及程序架构。当然像jQuery它自己其实并无是一个框架,它是一个库(lib)。目前主流的框架或库发生如下几单:

jQuery 
YUI 
DOJO

  • HTML5:同CSS3类似,即虽然并未成为规范,但是主流的浏览器都支持了。HTML5免是HMTL,虽然为提供了有的初标签,但是它们的主要用途还是JavaScript。HTML5要提供以下功能:

本土音频视频播放 
Canvas/SVG 
地理信息 
硬件加速 
当地运行 
当地存储 
于桌面拖放文件及浏览器上传 
语义化标签,Form表单

  • 前端模板:主要是为解决复杂的数量拼接问题,可以以模板语言转换化为HTML结构,可以大大简化工作量,同时代码的可维护性得到那个特别的滋长。目前比较主流前端模板来:

MustCache 
JsRender

  • 前端MVC:Web应用的功效逾大,Javascript代码也更为多,大量的JS代码要因为何种架构来团便成了一个归心似箭的问题,于是就有人管传统的MVC架构移植到前者来解决这些题目。目前主流前端MVC框架主要出以下这些: 
    (web前端上交流群:328058344 禁止闲聊,非喜不进!)

Backbone.js 
Spine 
YUI 
Agility.js 
Ember.js 
Batman.js 
Dojo 
AngularJS(MVVM) 
KnockoutJS(MVVM)

  • 模块化开发:特点是“模块化开发,按需加载“。这里面CommonJS组织定义了AMD的正儿八经用来规范浏览器端的模块定义。RequireJS和SeaJS是实现了AMD的鲜个精彩之框架。详见:http://www.weakweb.com/articles/341.html

  • JavaScript单元测试:QUnit

  • JavaScript设计模式

  • NodeJS:把JavaScript移植到劳动器端了,这样前端和后端就得使相同的技巧,方便统一出。而且NodeJS是非阻塞调用的,在一定领域性能是挺有力的。而且就是前端开发人员出动后台开发之好机遇,进而前后端统一开支,但以无用失去读外后台开发语言。

  • ES5:ECMAScript
    5,也就算是新型的JavaScript规范,对前的JavaScript作了重重改进,增加了重重初的特色,比如JSONECMAScript
    5,也即是时的JavaScript规范,对前的JavaScript作了诸多更上一层楼,增加了过多新的性状,比如JSON。

Others


  • 响应式设计:伴随着各种智能装备的盛,响应式设计本凡是老大炎热。以前做网页只要面向PC机的浏览器,页面一直固定宽度就执行,比如960px,而如今经过手机的访问量已越PC机,并且配备的尺码多种多样,未来会另行多。在这种背景下,网页支持有设备开展走访是主导要求了,而响应式设计能够充分好的缓解这些题材。

  • Http1.1:GET,POST方式,Request/Response 头部,状态码等。

  • Web移动开:开发方式一般是native的法子要Web方式,作为前端开发人员的话当然是去读书Web移动开了。PhoneGap是必学的,前端层面的框架如jQueryMobile,
    Sencha Touch, jQTouch等都是正确的精选。

  • 前端安全:随着前端技术之提高,安全问题早就由服务器悄然来临了每一个用户的之前头,盗取用户数据,
    制造恶意的足自己复制的蠕虫代码,让病毒在用户中传播,使服务器当掉.
    更产生甚者可能会见以用户不知觉得情况下,让用户成为攻击者,这绝对免是骇人听闻。富客户端的应用越来越宽广,前端的安题材吧就增多。常见的攻击方式有:

  • XSS,跨站脚论攻击(Cross Site
    Script)。它借助的是恶意攻击者往Web页面里安插恶意html代码,当用户浏览该页之常,嵌入的黑心html代码会叫实施,从而达到恶意用户的出格目的。
  • CSRF(Cross Site Request Forgery),跨站点伪造请求。顾名思义就是
    通过伪造连接要于用户不知情的状态下,让用户为温馨的地位来完成攻击者需要达成的一对目的。
  • cookie劫持,通过获取页面的权杖,在页面中描绘一个简的届黑心站点的要,并带用户之cookie
    获取cookie后透过cookie 就得直以被盗用户的地位登录站点。
  • 跨域处理:同源策略规定跨域之间的底论是隔离的,一个域底台本不可知顾与操作另外一个域的多方面性能和方。所谓的跨域处理便是高居不用域之间的步伐互相调用,目前产生众多措施来处理它。

  • 调节工具:前端的调剂工具很多,比如Firebug,Webkit核心的web
    inspector, IE的iedeveloper。HTTP相关的fiddler,
    httpwatch等,还有格式化代码的jsbeatutifier,它推向阅读压缩处理过的JavaScript代码。IETester可以效仿所有的IE版本,是调节IE兼容性的好工具。

  • SEO:搜索引擎优化

  • A/B
    test:确定两只因素或本(A和B)哪个版本更好,你待而实验两个版。最后,选择最好的版本采用。

  • 可用性/可访问性:

  • 可用性指的凡:产品是否好上手,用户能否做到任务,效率如何,以及当时过程被用户的不合理感受可好,是自从用户之角度来拘禁产品的质量。可用性好意味着产品质量高,是铺之中坚竞争力。
  • 但访问性:上网用户蒙受那些视力受损的食指,通过屏幕阅读器使用键盘命令将网页的始末念给她们听。以语义化的HTML(结构与显现相互分离之HTML)编写的网页文件,就可为此类用户还便于导航,且网页文件中之主要消息吗再度产生或给这些用户找到。
  • 前者流程/部署:Grunt,Bower和Yeoman当今几乎是前者最盛的自动化的品类构建工具

  • 正则表达式

  • 浏览器插件开发

  • 浏览器原理

关联能力

出色的前端工程师需要有所得天独厚的联系能力,因为若的干活同许多人数的工作息息相关。在任何情形下,前端工程师至少还如满足下列四近似客户之求。 
(web前端上交流群:328058344 禁止闲聊,非喜不进!)

  • 活经营——这些是负策划应用程序的同一广大人数。他们能够想像发生什么通过应用程序来满足用户需求,以及如何通过她们设计的模式赚到钱(往往从以及愿违)。一般的话,这些人追求的凡增长的功用。

  • UI设计师——这些口承担应用程序的视觉设计和互动模拟。他们关注的是用户对呀敏感、交互的一贯性以及完整的好用性。他们喜爱让流畅靓丽可并无便于实现的用户界面,但考虑问题反复无周全。

  • 项目经理——这些口负责实际地运作和保护应用程序。项目管理的要害关注点,无外乎正常运行时(uptime)——应用程序始终健康可用之年月、性能和得了日期。项目经理追求的目标数是拼命三郎保障业务的简单化,以及非以提升更新时引入新题材。

  • 最终用户——当然是应用程序的最主要消费者。尽管我们不会见常跟最终用户打交道,但她俩之汇报意见主要;没人思念就此之应用程序毫无价值。最终用户要求最好多的即使是对个体中之法力,以及竞争性产品所具有的机能。

从某种意义上说,优秀之前端工程师就如是同样员大使,需要天天获得在外交官的心气来应针对各国一样龙的劳作。

什么样提高前端技术

  • Github是一个出色的代码托管网站,我们可于达标创设我们个人的型,同时为是习的好地方,我们得关注其他优秀的种类。JSFiddle是一个web开发人员的习习场,一个可于广大端以的工具。我们得以就此外来在线编辑一些HTML,CSS,javascript片段。你编的代码可以同其他人分享,或坐你的博客当
  • 看优秀之开源代码
  • 关心技术发展趋势,了解时的行当技术,可以经订阅知名博客,阅读技术情报获取
  • 写博客/记笔记,可以进行文化积累。

前端修炼之路

入门:打基础同时能参与到花色遭到错过。

  • HMTL & XHTML
  • CSS基础知识
  • JavaScript基础知识
  • DOM
  • JSON
  • AJAX
  • JavaScript Frameworks

深刻:掌握前端核心技术,可以单独工作。

  • HTML5标签,TML标签语义化
  • CSS Sprite
  • 浏览器兼容性
  • IE HasLayout和Block Format Content
  • CSS3
  • 精通JavaScript Frameworks
  • HTML5
  • 前者模板
  • 前端MVC
  • 模块化开发
  • Http1.1
  • 调节工具
  • 正则表达式
  • 响应式设计

潜出:把握总体前端项目,做通前端项目的架构师。

  • CSS性能优化
  • LESS and SASS
  • JavaScript单元测试
  • JavaScript设计模式
  • NodeJS
  • ES5
  • Web移动支付
  • 浏览器插件开发
  • 前者安全
  • 跨域处理
  • SEO
  • A/B test
  • 可用性/可访问性
  • 前端流程/部署
  • 浏览器原理

出征:一代宗师。

  • 莫停止的学习新的技巧
  • 相互设计力量,管理能力

前端的前程

  • 运动技术流路线,即深入研讨前端相关的号技术,比如浏览器原理,JavaScript本身的研讨,W3C各种专业等。前端技术发展快速,各种新技巧层出不穷,这漫长总长移动下来是老大烦的。

  • 朝交互设计方向走,前端工程师完成一定水平后互动设计力量啊会见赢得特别死的提高,对全信息架构的握住能力也会见又胜似。可以老好之弥补视觉设计师在交换设计及的阙如。这漫漫总长实在和第一长是匪闯的,甚至好掌握为平漫漫总长。

  • 于后活动,即夺上学后台开发之技艺,比如JAVA/PHP等,其实绝大部分风俗的后台开发人员就是这个状态,即前后台都召开。个人觉得这样的话其实已经走回老路了,毕竟前端就是打原先的后台开发那里独立出来的。

  • 往管理方向,比如项目经理,或者干脆转行,比如公务员等。

相关文章