javaScript的组成部分

来源:互联网 发布:淘宝宝贝图片怎么上传 编辑:程序博客网 时间:2024/06/03 05:10

javaScript的实现

一个的JavaScript应该有以下三个部分组成:
ECMAScript(核心)
DOM(文档对象模型)
BOM(浏览器对象模型)

ECMAScript

原博客
一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?

要讲清楚这个问题,需要回顾历史。1996年11月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给国际标准化组织ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是1.0版。

该标准从一开始就是针对 JavaScript 语言制定的,但是之所以不叫 JavaScript,有两个原因。一是商标,Java 是 Sun 公司的商标,根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 本身也已经被 Netscape 公司注册为商标。二是想体现这门语言的制定者是 ECMA,不是 Netscape,这样有利于保证这门语言的开放性和中立性。

因此,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)。日常场合,这两个词是可以互换的。

ECMAScript规定了:
语法
类型
语句
关键字
保留字
操作符
对象

DOM

DOM是 Document Object Model(文档对象模型)的缩写;
DOM是针对xml和html的提供的API;
把html看作一个对象树(DOM树),它本身和里面的所有东西比如标签都看做一个对象,每个对象都叫做一个节点(node),它的根节点就是document;

<html>    <head>        <title></title>    </head>    <body>        <div></div>    </body></html>

通过DOM提供的API,我们可以在js中使用这些API来修改节点;

## BOM ##
BOM即是浏览器窗口对象;
BOM提供了属性和方法,来使我我们操作浏览器;比如,打开新的窗口,窗口的滚动位置等等;

BOM和DOM
链接:https://www.zhihu.com/question/20724662/answer/15975186

Document Object Model(文档对象模型),就是把「文档」当做一个「对象」来看待。相应的,Browser Object Model(浏览器对象模型),即把「浏览器」当做一个「对象」来看待。
在 DOM 中,文档中的各个组件(component),可以通过 object.attribute 这种形式来访问。一个 DOM 会有一个根对象,这个对象通常就是 document。

而 BOM 除了可以访问文档中的组件之外,还可以访问浏览器的组件,比如问题描述中的 navigator(导航条)、history(历史记录)等等。

在这种 「XOM」的模型中,最应该理解的就是 Object Model。Object Model 就表示你可以通过像操作对象一样,来操作这个 X。

再解释一下什么是对象(Object)。在编程领域中,对象就是指的一种拥有具体数据(Data)并且具有(并不总是)特定行为(Behavior)的东西。例如,一个人 ,就可以看做一个对象。人的年龄、性别、身高、体重就是上文说的具体「数据」,通常将对象拥有的具体数据称作对象的「属性(Attribute)」;而人吃饭,睡觉,行走等能力,就是上文所说的「行为」,通常,我们把对象的行为称作对象的「方法(Method)」。

另外,对象是可以嵌套的,也就是是说,一个对象的属性也可以是对象。上文所说的「像操作对象一样」,最主要就是指访问对象的属性和调用对象的方法。

对象的属性可以通过 object.attribute 这种形式来访问,对象的方法可以通过 object.method(arguments) 这种形式来调用。

对应到 DOM 中,document 这个根对象就有很多属性,例如 title 就是 document 的一个属性,可以通过 document.title 访问;document 对象也有很多方法,例如 getElementById,可以通过 document.getElementById(nodeId) 调用。