[知识点滴]JavaScript的真正解释

#1.什么是JavaScript?

JavaScript是一种专门与网页交互而设计的脚本语言.

#2.JavaScript的组成

虽然JavaScript和ECMAScript通常被人用来表达相同的意思,但JavaScript的含义去比ECMA-262中规定的多得多。一个完整的JavaScript实现应由三个部分组成:

1.核心(ECMAScript)
2.文档对象模型(DOM)
3.浏览器对象模型(BOM)

#ECMAScript

由ECMA-262定义的ECMAScript其实与Web浏览器没有依赖关系。Web浏览器只是ECMAScript实现可能的宿主环境之一。ECMA-262定义的只这门语言的基础,而在此基础上可能构建更完善的脚本语言。说回宿主,它不仅提供基本的JavaScript的实现,同时也会提供该语言的扩展,比如DOM。其他宿主环境还包括Node和Adobe Flash。

ECMA-262标准主要规定了这门语言的以下组成部分:

1.语法,2.类型,3.语句,4.关键字,5.保留字,6.操作符,7.对象。

ECMAScript是一套标准,定义了一种语言(假如A语言)是什么样子"—完全正确

也就是说它只是定义了接口,规则,然后由各大浏览器厂商去实现这些接口,根规则.具体的实现代码就在浏览器中,你是看不到的,比如Array.join()这个方法,ECMAScript只是定义,浏览器去具体实现.

#ECMAScript的版本

ECAMScript的不同版本又称为版次,ECMA-262最近一版是第5版,发布于2009年。ECAM-262的第1版实质上与Netscape的JavaScript1.1相同,只不过做了些小改动:支持Unicode标准,对象与平台无关。

ECMA-262第2版主要是编辑加工的结果,没有作任何新增、修改或删节处理。
  ECMA-262第3版才是对该标准第一次真正的修改。修改内容包括字符串处理、错误定义和数值输出。这一版还新增了对正则表达式、新控制语句、try-catch异常处理的支持,并围绕标准的国际化做出了一些小的修改。第3版也标志着ECMAScript成为了一门真正的编程语言。

ECMA-262第4版对这门语言进行了一次全面的检核修订。,出台后的标准几乎是在第3版的基础上完全定义了一门新语言。
第4版不仅包含了强类型变量、新语句和新的数据结构、真正的类和经典继承。还定义了与数据交互的新方式。
ECMAScript 3.1最终成为ECMA-262第5版,并于2009年12月3日正式发布。
第5版力求澄清第3版中已知的歧义并添加了新的功能,包括原生JSON对象、继承的方法和高级属性定义,以及严格模式。

#文档对象模型(DOM)

文档对象模型是针对XML但经过扩展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构。HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。

比如下面这个页面:


            
        Sample Page
    
    
        

Hello World!

通过DOM创建的这个表示文档的树形图(通常也被称作文档树),程序员可以通过DOM提供的API,轻松的对其中的任何节点进行删除、添加、修改等操作。

#DOM的级别:

DOM正式被统一规划源自微软与网景在开发DHTML(Dynamic HTML,动态HTML)上各持己见,DTHML的出现使得开发人员第一次无需重新加载网页就可以修改其内容。为了控制Netscape和微软在Web开发领域上两强割据,导致浏览器互不兼容的局面,负责制定Web通信标准的W3C(WorldWide Web Consortium,万维网联盟)开始着手规划DOM。

DOM 1级于1998年10月成为W3C的推荐标准。DOM 1级由两个部分组成:DOM核心(DOM Core)和DOM HTML。其中,DOM核心是规定如何映射基于XML的文档结构,以便对文档中的节点进行访问和操作。DOM HTML则在DOM的核心的基础上加以扩展,添加了针对HTML的对象和方法。这里需要注意的是,DOM并不是只针对JavaScript的,很多其他语言也都实现了DOM。只不在Web中,DOM已经成了JavaScript中重要的组成部分。

DOM 2级在原基础上扩展了鼠标和用户界面整件、范围、遍历等细分模块,而且通过对象接口增加了对CSS(Cascading Style Sheets,层叠样式表)的支持。

DOM 3级则进一步扩展了DOM,引入了加载和保存文档的方法。

#浏览器对象模型(BOM)

开发人员可以使用BOM来控制浏览器显示页面以外的部分。而BOM真正与众不同或者说经常导致问题的地方在于它是JavaScript实现的一部分却不像DOM有着相关的标准。这个问题在HTML5中得到了解决,HTML5致力于把很多BOM功能写入规范。HTML5发布后,很多关于BOM的困惑也就消失了。从根本来讲,BOM只处理浏览器窗口和框架,但人们习惯上也把所有针对浏览器的JavaScript扩展算作BOM的一部分。下面就是一些这样的扩展:
弹出新浏览器窗口的功能;移动、缩放和关闭浏览器窗口的功能;
提供浏览器详细信息的navigator对象;
提供浏览器所加载页面的详细信息的location对象;
提供用户显示器分辨率详细信息的screen对象;
对cookies的支持;
像XMLHttpRequest和IE的ActiveXObject(AJAX的核心实现)这样的自定义对象。
关于BOM的更多内容会在以后的博文中详细介绍。

你可能感兴趣的:([知识点滴]JavaScript的真正解释)