HTML是用来存储网页内容的,CSS是用来定义这些内容的显示样式的,而JavaScript是用来创造丰富的页面效果或者网页应用的。
但是,如果从浏览器的范畴去理解“JavaScript”这个术语,它包含了截然不同的两个方面。一个是JavaScript的核心语言(ECMAScript),另一个是DOM(文档对象模型)。
JavaScript的核心语言是ECMAScript。ECMAScript是由ECMA TC39委员会进行标准化的一门编程语言,其最新版本是ECMAScript 7.0。
核心语言同样可以被用在非浏览器环境中,例如 node.js。
ECMAScript 定义了:
截止2014年8月份,主流浏览器的最新版本都已经支持ECMAScript 5.1,但是旧版本的浏览器大都仅支持ECMAScript 3和ECMAScript 5的部分标准。这里是一些关于ECMAScript 5的浏览器支持情况的资料。如今,主流浏览器的最新版本已经支持 ECMAScript 6 的大部分标准。
ECMA-262(ECMAScript 4 或者 ES4)第4版的提议本应成为自1999年第3版发布以来的一次重要更新,但是在2008年8月份,ECMAScript第4版被回退到一个代号为ECMAScript Harmony的项目,像const
关键字以及对象代理等内容都被涵盖其中。你可以在这里跟踪这个项目的进展。ECMA 委员会已经在 2015年6月17号,正式发布了第6版标准。
由Ecma TC39进行标准化的ECMAScript国际化API规范是在ECMAScript语言规范之上额外增加的。国际化API为JavaScript提供了规则排序(字符串比较),数字格式化,日期时间格式化等功能,能够让应用根据实际需要选择语言或功能。本标准在2012年12月份审批通过,可以在Intl对象页面查看浏览器的实现情况。
WebIDL定义了ECMAScript和DOM技术之间的交互规范。
文档对象模型(DOM)是用来表达HTML,XHTML及XML文档中的对象或与其进行交互的约定,它是跨平台的,并且与编程语言无关。通过调用DOM树上对象的方法可以操纵这些对象。文档对象模型核心是由W3C进行标准化的,它将HTML和XML文档抽象成对象,并在其上定义接口以及操纵这些对象的机制,这些定义都是与编程语言无关的。
从ECMAScript的角度来看,DOM规范中定义的对象被称作“宿主对象”。
ul
元素中,只能以li
元素作为子元素来表达列表项。还有就是禁止使用标准中未定义的元素和属性。想了解更多关于Document对象、Window对象以及其他DOM元素的信息?请访问Gecko DOM文档。
要实现跨浏览器的兼容性,一个常见的但可能不是最可靠的方式就是使用JavaScript库。这些库对于DOM特性进行抽象,以确保它们所提供的API在不同的浏览器上行为一致。被广泛采用的框架有jQuery,prototype和YUI。