前言:最近也是感受到基础的重要性,所以也是一直在看JavaScript基础方面的书。脑袋中突然就有了做个综合整理的想法,想着每天更新一小节。其实之前也是有些过博客类的东西,但是那个时候本着手敲的原则,很多官方的话,也要通过手敲的方式来写东西。后面发现这种效率真的很低,可能是为了心中的那一份小傲娇吧。以后可能就会通过复制加总结的方式进行笔记的一个撰写,这样一来能提高自己的一个产出效率,也能节省时间去学习其他的东西,总之也算是找到了最适合自己撰写笔记的方式吧。希望自己能够慢慢坚持下来,冲冲冲~
1.JavaScript的组成
完整的JavaScript实现包含以下几个部分(见图1-1):
- 核心(
ECMAScript
) - 文档对象模型(
DOM
) - 浏览器对象模型(
BOM
)
2.ECMAScript
即ECMA-262
定义的语言,并不局限于Web浏览器。事实上,这门语言没有输入和输出之类的方法。ECMA-262
将这门语言作为一个基准来定义,以便在它之上再构建更稳健的脚本语言。Web浏览器只是ECMAScript
实现可能存在的一种宿主环境(host environment)。
2.1ECMA-262到底定义了什么?
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 操作符
- 全局对象
注意:ECMAScrip
t只是对实现这个规范描述的所有方面的一门语言的称呼。
2.2 ECMAScript符合性是什么意思?
要成为ECMAScript 实现,必须满足下列条件:
- 支持ECMA-262中描述的所有“类型、值、对象、属性、函数, 以及程序语法与语义”;
- 支持Unicode字符标准。
此外,符合性实现还可以满足下列要求: - 增加
ECMA-262
中未提及的“额外的类型、值、对象、属性和函
数”。ECMA-262
所说的这些额外内容主要指规范中未给出的新 对象或对象的新属性。 - 支持
ECMA-262
中没有定义的“程序和正则表达式语法”(意思 是允许修改和扩展内置的正则表达式特性)。
3.DOM
文档对象模型(DOM
,Document Object Model
)是一个应用编程接口 (API
),用于在HTML
中使用扩展的XML
。DOM
将整个页面抽象为一组分层节点。HTML
或XML
页面的每个组成部分都是一种节点,包含不同的数据。比如下面的HTML页面:
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<p> Hello World!</p>
</body>
</html>
这些代码通过DOM可以表示为一组分层节点,如图1-2所示:
解释:DOM
通过创建表示文档的树,让开发者可以随心所欲地控制网页的内 容和结构。使用DOM API
,可以轻松地删除、添加、替换、修改节点。
4.BOM
IE3
和Netscape Navigator 3
提供了浏览器对象模型(BOM
) API,用于支持访问和操作浏览器的窗口。使用BOM
,开发者可以操控浏览器显 示页面之外的部分。BOM
真正独一无二的地方,就是它是唯一一个没有相关标准的JavaScript实现。但是HTML5
改变了这个局面,这个版本的HTML
以正式规范的形式涵盖了尽可能多的BOM
特性,很多与BOM
有关的问题都迎刃而解了。
注意:BOM
主要针对浏览器窗口和子窗口(frame),下面就 是这样一些扩展:
- 弹出新浏览器窗口的能力;
- 移动、缩放和关闭浏览器窗口的能力;
- navigator对象,提供关于浏览器的详尽信息;
- location对象,提供浏览器加载页面的详尽信息;
- screen对象,提供关于用户屏幕分辨率的详尽信息;
- performance对象,提供浏览器内存占用、导航行为和时间统计的 详尽信息;
- 对cookie的支持;
- 其他自定义对象,如XMLHttpRequest和IE的ActiveXObject。
5.小结
JavaScript是一门用来与网页交互的脚本语言,包含以下三个组成部分:
- ECMAScript:由
ECMA-262
定义并提供核心功能。 - 文档对象模型(
DOM
):提供与网页内容交互的方法和接口。 - 浏览器对象模型(
BOM
):提供与浏览器交互的方法和接口。