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.相关文章推荐
- js+canvas实现纸牌游戏
- JS 拦截/捕捉 全局错误 全局Error onerror
- JSON数据解析
- 【JavaScript】单击网页任意一处打开新窗口与关闭窗口
- javascript知识点
- XML数据的三种解析(JSON方式 , DOM方式 , Sax方式)
- 利用JS的D3库实现直方图
- json的解析和序列化
- HTML5音频播放,歌词同步,及视频播放功能(JPlayer、JWPlayer、VideoJS)
- 图片上传时,QQ浏览器会弹出下载弹框的解决方案
- ExtJs4.2的合并单元格
- 采用新的方法解决extjs4.1 grid合并单元格问题
- js里面的属性和方法类型
- Velocity浅析及与Jsp、Freemarker对比
- Javascript中的几种继承方式比较
- HTML5通过js调用手机摄像头
- [每天读书半小时] 2015-6-12 Servlet / JSP
- 201506121154_《JavaScript权威指南(第六版)——垃圾回收机制、列宁认识逻辑方法》(P161-?)
- javascript 编程题目
- jsp页面完美的分页代码,每次显示十条分页链接。