您的位置:首页 > Web前端 > JavaScript

JavaScript 技术概要

2015-06-12 20:28 507 查看

介绍

HTML定义了一个网页的结构he内容,CSS设置它的格式和样式,JavaScript则为一个网页带来互动性,因此创造了丰富多彩的网页程序。不过,这个涵盖性的术语JavaScript在浏览器的环境下包含着一些不同的元素。其中一个就是指核心语言ECMAScript,另外一个则是Web API的集合,包括DOM(文档对象模型)。

JavaScript核心语言 (ECMAScript)

JavaScript的核心语言被称为ECMAScript,是由ECMA TC39委员会制定的标准。最新一版标准手册是EMCAScript 5.1。这个核心语言也被使用于浏览器以外的环境。例如,node.js。

ECMAScript包含了什么?

除了其他一些东西外,ECMAScript还定义了:语法(解析规则,关键字,流程控制,常量对象初始化)

错误处理机制(throw, try/catch,创建用户制定的错误类型的能力)

类型(布尔,数值,字符串,函数,对象等等)

全局对象。在浏览器中,这个全局对象是指window,但是ECMAScript只定义不针对于浏览器的API,例如,
parseInt
,
parseFloat
,
decodeURI
,
encodeURI
...

基于Prototype的继承机制

内建对象和函数 (
JSON
,
Math
,
Array.prototype
方法, 对象自省方法...)

Strict 模式

浏览器支持

截止2014年8月,主流浏览器的当前版本都实现了 ECMAScript 5.1, 但是一些在用的老版本实现的是 ECMAScript 3,并且只实现了部分的 ECMAScript 5. 现在,浏览器已经实现了部分的 ECMAScript 6.

未来发展

被提议的第四版 ECMA-262 (ECMAScript 4 或者称 ES4) 将会成为ECMAScript自1999年推出的第三版以来的第一个主要的更新。截止2008年月,ECMAScript第四版的提议已经被缩减到一个代号为 ECMAScript Harmony的项目, 这个项目定义了 Proxies 或者
const
关键字. 标准的第六版期望会于2015年面世。

国际化 API

ECMAScript 国际化 API 标准手册 是ECMAScript 语言标准手册的额外内容, 它也是由Ecma TC39制定的标准. 国际化 API 为JavaScript应用提供了核对特性 (字符串对比), 数字格式化, 还有日期和时间的格式化,使得应用可以选择专心于自己的逻辑。标准在2012年的12月份被批准通过,浏览器对实现的状态在
Intl
对象
的文档中可以找到。

DOM APIs

WebIDL

WebIDL 手册 提供DOM技术和ECMAScript之间的连接技术。

DOM的核心

文档对象模型 (DOM) 是一个跨平台,独立于语言以外的一种呈现和操作HTML,XHTML和XML文档对象的规则。DOM树里面的对象可以使用对象上的方法来进行寻址和操作。W3C 标准化了DOM的核心,它定义了不针对语言的接口,这接口将HTML和XML文档抽象为对象,并且定义了操作这些抽象对象的机制。其中就定义了:文档结构,树形结构和DOM核心中的事件架构:
Node
,
Element
,
DocumentFragment
,
Document
,
DOMImplementation
,
Event
,
EventTarget
, …

不那么严谨的DOM事件架构和特定的事件

其他例如 DOM Traversal and DOM Range.

在 ECMAScript 看来, 在DOM手册里面定义的对象是“主机对象”。

HTML DOM

HTML, Web的标记语言, 是在DOM中得以具体体现的。HTML在DOM核心里被定义在抽象概念层以上,它定义元素的意义。HTML DOM包含了例如
className
这样的树形, 或者像
document.body
这样的API。HTML手册也定义文档的限制。例如,它要求无序列表ul元素的所有子元素为li,它们代表的是列表行。总体来说,它也禁止使用标准以外的元素和属性。

其他值得关注的 APIs

setTimeout
setInterval
函数在HTML标准的
Window
接口中被第一次定义。

XMLHttpRequest 使得发送异步HTTP请求变为可能

CSS Object Model 将CSS规则抽象成对象

WebWorkers 允许并行计算

WebSockets 允许底层双向通信

Canvas 2D Context
<canvas>
.的画图API

浏览器支持

每一个Web开发者都感受过,DOM是一团糟。浏览器对各个特性的支持都可能不一致。这个主要是因为很多DOM的重要特性都没有一个明确的手册描述。不同的浏览器也为了覆盖用例加入了不兼容的特性(例如IE的事件模型)。截止2011年6月,W3C和WHATWG还特意将旧特性加以详细定义来改善互通性,浏览器可以借此改善他们的实现。一个普通但可能不可靠的浏览器兼容方法,就是使用JavaScript抽象了DOM特性的库,让他们在不同的浏览器里能一样的执行,像 jQuery, prototype, 和 YUI.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: