JavaScript高级程序设计(第四版)学习笔记(第一章)

248 阅读3分钟

一、 什么是JavaScript

1.1历史回顾:

1.2JavaScript实现:

JavaScript是一门用来与网页交互的脚本语言,完整的JavaScript实现包含以下几个部分:

  • 核心(ECMAScript):由ECMAScript定义并提供核心功能
  • 文档对象模型(DOM):提供与网页内容交互的方法和接口
  • 浏览器对象模型(BOM):提供与浏览器交互的方法和接口

1.2.1 核心ECMAScript:

ECMAScript,即ECMA-262定义的语言,这门语言没有输入输出之类的方法。

Web浏览器是ECMAScript实现的一种宿主环境。宿主环境提供ECMAScript的基准实现和环境自身交互必需的扩展。DOM是一种扩展,使用ECMAScript核心类型和语法,提供特定于环境的额外功能。

不涉及浏览器的情况下,ECMA-262定义了语法、类型、语句、关键字、保留字、操作符、全局对象。

ECMAScript只是对实现这个规范描述的所有方面的一门语言的称呼,JavaScript实现了ECMAScript,Adobe ActionScript也实现了ECMAScript。

要成为ECMAScript实现必须满足以下条件: 支持ECMA-262中描述的所有“类型、值、对象、属性、函数、以及程序语法和语义”; 支持Unicode字符标准。

1.2.2 DOM

文档对象模型是一个应用编程接口,用于在HTML中使用扩展的XML。

万维网联盟(W3C,World Wide Web Consortium)制定了DOM的推荐标准DOM Level 1,这个规范由以下两个模块组成:

  • DOM Core:提供了一种映射XML文档,从而方便访问和操作文档任意部分的方式;
  • DOM HTML:扩展了DOM Core,并增加了特定于HTML的对象和方法。

1.2.3 BOM

IE3和Netscape Navigator 3提供了浏览器对象模型API,用于支持访问和操作浏览器的窗口,使用BOM,开发者可以操控浏览器显示页面之外的部分。

BOM是唯一一个没有相关标准的JavaScript实现(HTML5以正式规范的形式涵盖了尽可能多的BOM特性)。

BOM主要针对浏览器窗口和子窗口,不过通常特定于浏览器的扩展也归于BOM中,比如:

  • 弹出新浏览器窗口的能力;
  • 移动、缩放和关闭浏览器窗口的能力;
  • navigator对象,提供关于浏览器的详尽信息;
  • location对象,提供;浏览器加载页面的详尽信息;
  • screen对象,提供关于用户屏幕分辨率的详尽信息;
  • performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;
  • 对cookie的支持;
  • 其他自定义的对象,如XMLHttpRequest和IE的ActiveXObject。

1.3 JavaScript版本:

1.4 小结:

JavaScript的三个部分得到了五大浏览器(IE、Firefox、Chrome、Safari、Opera)不同程度的支持。

所有浏览器基本上对ES5提供了完善的支持;这些浏览器对DOM的支持各不相同。

HTML5中收录的BOM会因浏览器而异,不过开发者任然可以假定存在很大一部分公共特性。