【初学者必读】:前端工程师的学识系统

下图是前者工程师图解:

图片 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年的五月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 Pepsi-Cola:CSS
    雪碧主要用于前端品质优化的一种技术,原理是由此将多张背景图片合成在一张图片上之所以收缩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

抑或一个比较盛名和尤其的框架是推特的Bootstrap。Bootstrap是高效支付Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了新式的浏览器技术,给您的Web开发提供了时髦的版式,表单,buttons,表格,网格系统等等。它是按照Less开发的。不辅助IE6,在IE7和IE8里效果也不咋地。

CSS3:

虽说CSS3还不曾专业成为正式,可是包涵IE9+, chrome,
Firefox等现代浏览器都协助CSS3。CSS提供了诸多在此从前需求用JavaScript和切图才能化解的意义,方今最首要效能有:

圆角 
多背景 
@font-face 
卡通与渐变 
渐变色 
Box阴影 
奥德赛GBa-参加透明色 
文字阴影

  • 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 詹姆斯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协会定义了英特尔的规范用来规范浏览器端的模块定义。RequireJS和SeaJS是贯彻了英特尔的七个优质的框架。详见: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,而现行透过手机的访问量已经超(英文名:jīng chāo)过PC机,并且配备的尺码四种各个,今后会越多。在那种背景下,网页扶助所有设备举办访问是基本需要了,而响应式设计能很好的缓解那些难题。

  • Http1.1:GET,POST格局,Request/Response 底部,状态码等。

  • Web移动支付:开发方式一般是native的法子或然Web格局,作为前端开发职员来说当然是去读书Web移动支付了。PhoneGap是必学的,前端层面的框架如jQueryMobile,
    Sencha Touch, jQTouch等都以没错的选料。

  • 前端安全:随着前端技术的上进,安全难题一度从服务器悄然来临了每个用户的的前方,盗取用户数据,
    创制恶意的可以自个儿复制的蠕虫代码,让病毒在用户间流传,使服务器当掉.
    更有甚者或许会在用户不知觉得情况下,让用户成为攻击者,那纯属不是骇人听外人说。富客户端的行使越发广,前端的铁岭题材也跟着增多。常见的攻击方式有:

  • XSS,跨站脚本攻击(帕萨特 Site
    Script)。它指的是黑心攻击者往Web页面里安顿恶意html代码,当用户浏览该页之时,嵌入的恶意html代码会被执行,从而达到恶意用户的与众不一样目标。
  • CS凯雷德F(PASSAT 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)编写的网页文件,就可以让此类用户更便于导航,且网页文件中的主要音信也更有只怕被那个用户找到。
  • 前者流程/安插:GruntBowerYeoman今昔大致是前者最风靡的自动化的连串创设工具

  • 正则表明式

  • 浏览器插件开发

  • 浏览器原理

牵连能力

美好的前端工程师须要拥有杰出的关系能力,因为您的行事与众多个人的行事皮之不存毛将焉附。在其它景况下,前端工程师至少都要满意下列四类客户的需求。 
(web前端学习交换群:328058344 禁止闲谈,非喜勿进!)

  • 出品老板——这个是承受策划应用程序的一群人。他们可以想像出怎样通过应用程序来满意用户须要,以及怎样通过他们安排的情势赚到钱(往往大失所望)。一般的话,那几个人追求的是加上的法力。

  • UI设计师——那么些人肩负应用程序的视觉设计和互动模拟。他们关切的是用户对怎么敏感、交互的一贯性以及完整的好用性。他们喜爱于流畅靓丽但并不易于完毕的用户界面,但考虑难点反复不周到。

  • 项目CEO——那个人肩负实际地运作和维护应用程序。项目管理的关键关怀点,无外乎正常运转时刻(uptime)——应用程序始终健康可用的小运、品质和了结日期。项目COO追求的靶子往往是尽可能有限扶助业务的简单化,以及不在升级翻新时引入新题材。

  • 最后用户——当然是应用程序的主要消费者。即使大家不会时不时与最后用户打交道,但她俩的汇报意见首要;没人想用的应用程序毫无价值。末了用户须要最多的就是对私家有效的法力,以及竞争性产品所拥有的法力。

从某种意义上说,优良的前端工程师就好像一位大使,需求每日抱着外交官的心理来应对每天的办事。

怎么样增强前端技术

  • 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等,其实绝大多数古板的后台开发人士就是以此状态,即前后台都做。个人觉得那样的话其实早已走回老路了,终归前端就是从原来的后台开发那里独立出来的。

  • 往管理方向,比如项目COO,只怕干脆转行,比如公务员等。