JavaScript高级程序设计学习笔记【第一章 什么是JavaScript】

本文介绍了JavaScript的三大核心组成部分:ECMAScript、DOM和BOM。ECMAScript是JavaScript的基础,定义了语言的语法和类型;DOM是文档对象模型,允许开发者操作HTML和XML文档;BOM则是浏览器对象模型,提供了与浏览器交互的接口。随着HTML5的发展,BOM的相关标准得到完善,使得JavaScript在现代浏览器中的支持更加统一。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1.1 JavaScript 实现

JavaScript的实现包含以下几个部分:
核心(ECMAScript)
文档对象模型(DOM)
浏览器对象模型(BOM)
在这里插入图片描述

1.2ECMAScript

ECMAScript,即 ECMA-262 定义的语言,并不局限于 Web 浏览器。事实上,这门语言没有输入和输出之类的方法。ECMA-262 将这门语言作为一个基准来定义,以便在它之上再构建更稳健的脚本语言。
Web 浏览器只是 ECMAScript 实现可能存在的一种宿主环境(host environment)。宿主环境提供ECMAScript 的基准实现和与环境自身交互必需的扩展。扩展(比如 DOM)使用 ECMAScript 核心类型和语法,提供特定于环境的额外功能。其他宿主环境还有服务器端 JavaScript 平台 Node.js 和即将被淘汰的 Adobe Flash。
如果不涉及浏览器的话,ECMA-262它描述这门语言的如下部分:

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 操作符
  • 全局对象
    ECMAScript 只是对实现这个规范描述的所有方面的一门语言的称呼。JavaScript 实现了ECMAScript,而 Adobe ActionScript 同样也实现了 ECMAScrip

1.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 可以表示为一组分层节点,如图所示。
在这里插入图片描述
DOM 通过创建表示文档的树,让开发者可以随心所欲地控制网页的内容和结构。使用 DOM API,可以轻松地删除、添加、替换、修改节点。

1.3.1 DOM 级别

1998 年 10 月,DOM Level 1 成为 W3C 的推荐标准。这个规范由两个模块组成:DOM Core 和 DOM。DOM Level 1 的目标是映射文档结构,而 DOM Level 2 的目标则宽泛得多。
DOM 并非只能通过 JavaScript 访问,而且确实被其他很多语言实现了。不过对于浏览器来说,DOM 就是使用 ECMAScript 实现的,如今已经成为 JavaScript 语言的一大组成部分。
DOM Level 2 新增了以下模块,以支持新的接口。
DOM 视图:描述追踪文档不同视图(如应用 CSS 样式前后的文档)的接口。
DOM 事件:描述事件及事件处理的接口。
DOM 样式:描述处理元素 CSS 样式的接口。
DOM 遍历和范围:描述遍历和操作 DOM 树的接口

1.3.2其他 DOM

除了 DOM Core 和 DOM HTML 接口,有些其他语言也发布了自己的 DOM 标准。下面列出的语言是基于 XML 的,每一种都增加了该语言独有的 DOM 方法和接口:
可伸缩矢量图(SVG,Scalable Vector Graphics)
数学标记语言(MathML,Mathematical Markup Language)
同步多媒体集成语言(SMIL,Synchronized Multimedia Integration Language)

1.4 BOM

使用 BOM,开发者可以操控浏览器显示页面之外的部分。而 BOM 真正独一无二的地方,当然也是问题最多的地方,就是它是唯一一个没有相关标准的 JavaScript 实现。HTML5 改变了这个局面,这个版本的 HTML 以正式规范的形式涵盖了尽可能多的 BOM 特性。由于 HTML5 的出现,之前很多与 BOM有关的问题都迎刃而解了。总体来说,BOM 主要针对浏览器窗口和子窗口(frame),不过人们通常会把任何特定于浏览器的扩展都归在 BOM 的范畴内。比如,下面就是这样一些扩展:

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

因为在很长时间内都没有标准,所以每个浏览器实现的都是自己的 BOM。有一些所谓的事实标准,比如对于 window 对象和 navigator 对象,每个浏览器都会给它们定义自己的属性和方法。

1.5 小结

JavaScript 是一门用来与网页交互的脚本语言,包含以下三个组成部分。
ECMAScript:由 ECMA-262 定义并提供核心功能。
文档对象模型(DOM):提供与网页内容交互的方法和接口。
浏览器对象模型(BOM):提供与浏览器交互的方法和接口。
JavaScript 的这三个部分得到了五大 Web 浏览器(IE、Firefox、Chrome、Safari 和 Opera)不同程度的支持。所有浏览器基本上对 ES5(ECMAScript 5)提供了完善的支持,而对 ES6(ECMAScript 6)和ES7(ECMAScript 7)的支持度也在不断提升。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值