前端人员需要的核心技能
以下技能是前段开发人员需要掌握的核心技能,建议前端人员在空余时间依次进行学习。
- 统一资源定位符 (URLs)
- 超文本传输协议 (HTTP)
- 超文本标记语言 (HTML)
- 层叠样式表 (CSS)
- JavaScript 编程语言 (ECMAScript 262)
- JavaScript 对象表示法 (JSON)
- 文档对象模型(DOM)
- 网络 APIs (HTML5 或者浏览器 APIs)
接下来对上述技术进行简单的定义介绍,具体详情请看后续节的开发规范以及网络查阅。
统一资源定位符 (URL)
统一资源定位符(URL)也被称为网址,是关于资源的引用,明确了计算机网络资源的地址以及检索该资源的机制。URL 是统一资源标志符(URI)的一种特定类型,尽管许多人认为这两个概念可以互换。URL 表明了获取所需资源的方式,然而并非每个 URI 都会如此。URLs 通常被用于网页(http),与此同时也被用作文件传输(ftp),邮件(mailto),数据库接入(JDBC),以及许多其他的应用。
超文本传输协议 (HTTP)
超文本传输协议(HTTP)是一个为分布式的、协作的、多媒体的信息系统指定的应用协议。HTTP 是万维网数据交流的基础。
超文本标记语言 (HTML)
超文本标记语言,通常被称为 HTML,被用作创建网页的标准标记语言。网络浏览器可以读取 HTML 文件并且把它们渲染成可见或可听的网页。HTML 在语义上描述了一个网站的结构,并且隐含了其表现形式,因此是一种标记语言,而非程序语言。
层叠样式表 (CSS)
层叠样式表(CSS)是一种样式语言,用来描述使用标记语言编写的文档的外观和格式。尽管样式表通常被用来改变以 HTML 和 XHTML 的方式编写的网页和用户界面的样式,它也能被运用在任何使用 XML 编写的文档中,其中包括 XML,SVG 和 XUL。同 HTML 和 Javascript 一样,CSS 是用以构建具有视觉冲击力的网页和用户界面的基础技术。
JavaScript 编程语言 (ECMAScript 262)
JavaScript 是一个高级的、动态的、弱类型的解释性编程语言,被包含在 ECMAScript 的语言规范中。同 HTML 和 CSS 一样,它是万维网内容生产环节必不可少的三种技术之一,被大多数网站所使用,并且在不需要使用插件的情况下被所有现代的浏览器所支持。Javascript 基于原型并且把函数视为头等公民,因此是一种多范式的编程语言,支持面向对象,命令式以及函数式编程风格。它有一个可被用来操作文字,数组,日期以及正则表达式的 API,然而并不包含任何 I/O,因此像建网,存储或者图形工具之类的功能就需要依赖它所在的开发环境。
JavaScript 对象表示法 (JSON)
Javascript 对象表示法是在异步的浏览器/服务器交流方式(AJAJ)中所使用的主流的数据格式,并且基本上已经取代 XML(被 AJAX 所使用)。虽然 JSON 是从 Javascript 中衍生出的数据格式,但它实际上是独立于语言的。在许多的编程语言中都有现成的,用于解析和生成 JSON 数据的代码。JSON 数据格式的规范最开始是由 Douglas Crockford 制定的,现在被两个互相竞争的标准所描述:RFC 7159 以及 ECMA-404。ECMA 标准更轻量,仅仅规定了可以使用的语法规则;而 RFC 则基于句法上的以及安全上的考量提供了更细致的规范。JSON 官方的网络媒体类型是 application/json。JSON 文件名的后缀是 .json。
文档对象模型 (DOM)
文档对象模型(DOM)是一个跨平台并且具有语言无关性的概念,用来表示 HTML,XTHML 以及 XML 文档中的对象以及这类对象的交互方式。每份文档中按照树形结构进行组织的节点,被称为 DOM 树。可以使用 DOM 树中的对象所拥有的方法对该对象进行处理和操作。DOM 的 API 规定了它的公共接口。
Web APIs (HTML5 及其他)
当使用 Javascript 给网页编写代码的时候,有许多的 API 可供使用。以下是一张关于所有在开发网站或者网络应用时可以使用的公共接口的表。
除了 HTML、CSS、DOM、JavaScript、HTTP/URL以及浏览器开发的专业知识,一个前端开发者还需要掌握以下一项或多项技能:
- Node.js
- 跨浏览器测试
- 跨平台测试
- 单元测试
- 跨设备测试
- 交互或用户界面设计
- 用户体验
- 适用性
- 电子商务系统
- 门户系统
- 线框绘制
- CSS 布局/ Grids
- DOM 操作(比如 jQuery)
- 移动 Web 性能
- 渐进增强/优雅降级
- 版本控制(比如 GIT)
- MVC / MVVM / MV*
- 函数式编程
- 数据格式(比如 JSON,XML)
- 数据API(比如 Restful API)
- Web 字体嵌入
- 可缩放矢量图形(亦称 SVG)
- 正则表达式
- 任务管理器,构建工具,过程自动化工具
- 自适应网页设计
- 面向对象的程序设计
- 应用程序构建
- 模块
- 依赖管理
- 包管理
- JavaScript 动画
- CSS 动画
- 图表/图形
- UI 控件
- 代码质量测试
- 集成测试
- 命令行/命令行界面
- 模板策略
- 模板引擎
- 单页应用
- XHR 请求(亦称 AJAX)
- Web /浏览器 安全
- HTML 语义
- 浏览器开发工具