JavaScript
诞生于1995
年,当时,它的主要目的是处理以前由服务器端语言(如Perl)负责的一些输入验证操作。如今,JavaScript
的用途早已不再局限于简单的数据验证,而是具备了与浏览器窗口及其内容等几乎所有方面交互的能力。今天的 JavaScript
已经成为一门功能全面的编程语言,能够处理复杂的计算与交互,拥有了闭包、匿名函数,甚至元编程等特性,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。
JavaScript
从一个简单的输入验证器发展成为一门强大的编程语言,完全出乎人们的意料。应该说,它既是一门 非常简单 的语言,又是一门 非常复杂 的语言。说它简单,是因为学会使用它只需片刻功夫;而说它复杂,是因为真正掌握它则需要数年时间。要想全面理解和掌握JavaScript
,关键在于弄清楚它的本质、历史和局限性。
JavaScript
实现由以下三部分组成:核心(ECMAScript)
文档对象模型(DOM)
浏览器对象模型(BOM)
1. ECMAScript
由
ECMA-262
定义,提供核心语言功能。
ECMA-262
规定了这门语言的下列组成部分:
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 操作符
- 对象
ECMAScript
就是对实现该标准规定的各个方面内容的语言的描述。JavaScript
实现了ECMAScript
,Adobe ActionScript
同样也实现了ECMAScript
。
2. 文档对象模型( DOM )
提供访问和操作网页内容的方法和接口;把整个页面映射为一个多层点结构。
HTML
或 XML
页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。看下面这个 HTML
页面:
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<p>Hello World!</p>
</body>
</html>
在 DOM
中,这个页面可以通过下图所示的分层节点表示:
通过
DOM
创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助 DOM
提供的 API
,开发人员可以轻松自如地删除、添加、替换或修改任何节点。
3. 浏览器对象模型( BOM )
提供与浏览器交互的方法和接口
从根本上讲,BOM
只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的 JavaScript
扩展算作 BOM
的一部分。下面就是一些这样的扩展:
- 弹出新浏览器窗口的功能;
- 移动、缩放和关闭浏览器窗口的功能;
- 提供浏览器详细信息的
navigator
对象; - 提供浏览器所加载页面的详细信息的
location
对象; - 提供用户显示器分辨率详细信息的
screen
对象; - 对
cookies
的支持; - 像
XMLHttpRequest
和IE
的ActiveXObject
这样的自定义对象。
由于没有 BOM
标准可以遵循,因此每个浏览器都有自己的实现。虽然也存在一些事实标准,例如,要有 window
对象和 navigator
对象等,但每个浏览器都会为这两个对象乃至其他对象定义自己的属性和方法。