理解JavaScript

JavaScript

ECMAScript

DOM
BOM

什么是JavaScript

DOM

BOM

JavaScript是一门用来与交互网页的脚本语言。
它包括:

核心ECMAScript
文档对象模型DOM
浏览器对象模型BOM

ECMA-262定义了:
语法
类型
语句
关键字
保留字
操作符
全局对象
ECMAScript 只是对实现这个描述的所有方面的称呼

DOM

文档对象模型是一个应用编程接口(API),用于在html中使用扩展的下,XML。页面每个组成部分都是一种节点包含不同数据

// <html>
		<head>
		<title>page<title>
		</head>
		<body>
			<p> hello world </p>
		</body>
	</html>;

DOM 通过创建表示文档的树,让开发者可以随心所欲地控制网页的内容和结构。使用 DOM API,
可以轻松地删除、添加、替换、修改节点

为什么 DOM 是必需的

在 IE4 和 Netscape Navigator 4 支持不同形式的动态 HTML(DHTML)的情况下,开发者首先可以 做到不刷新页面而修改页面外观和内容。这代表了 Web 技术的一个巨大进步,但也暴露了很大的问题。 由于网景和微软采用不同思路开发 DHTML,开发者写一个 HTML 页面就可以在任何浏览器中运行的好 日子就此终结。

DOM 级别

1998 年 10 月,DOM Level 1 成为 W3C 的推荐标准。这个规范由两个模块组成:DOM Core 和 DOM

HTML。前者提供了一种映射 XML 文档,从而方便访问和操作文档任意部分的方式;后者扩展了前者 并增加了特定于 HTML 的对象和方法。
注意 DOM并非只能通过JavaScript访问,而且确实被其他很多语言实现了。不过对于浏 览器来说,DOM 就是使用 ECMAScript 实现的,如今已经成为 JavaScript 语言的一大组成 部分。

BOM

IE3 和 Netscape Navigator 3 提供了浏览器对象模型(BOM) API,用于支持访问和操作浏览器的窗 口。使用 BOM,开发者可以操控浏览器显示页面之外的部分。它是唯一一个没有相关标准的 JavaScript 实现。由于 HTML5 的出现,之前很多与 BOM 有关的问题都迎刃而解了。
总体来说,BOM 主要针对浏览器窗口和子窗口(frame),不过人们通常会把任何特定于浏览器的 扩展都归在 BOM 的范畴内。比如,下面就是这样一些扩展:
 弹出新浏览器窗口的能力;
 移动、缩放和关闭浏览器窗口的能力;
 navigator 对象,提供关于浏览器的详尽信息;
 location 对象,提供浏览器加载页面的详尽信息;

 screen 对象,提供关于用户屏幕分辨率的详尽信息;
 performance 对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;
 对 cookie 的支持;
 其他自定义对象,如 XMLHttpRequest 和 IE 的 ActiveXObject。
因为在很长时间内都没有标准,所以每个浏览器实现的都是自己的 BOM。有一些所谓的事实标准,
比如对于 window 对象和 navigator 对象,每个浏览器都会给它们定义自己的属性和方法。

总结

JavaScript 是一门用来与网页交互的脚本语言,包含以下三个组成部分。
 ECMAScript:由 ECMA-262 定义并提供核心功能。
 文档对象模型(DOM):提供与网页内容交互的方法和接口。
 浏览器对象模型(BOM):提供与浏览器交互的方法和接口。
JavaScript 的这三个部分得到了五大 Web 浏览器(IE、Firefox、Chrome、Safari 和 Opera)不同程度
的支持。所有浏览器基本上对 ES5(ECMAScript 5)提供了完善的支持,而对 ES6(ECMAScript 6)和 ES7(ECMAScript 7)的支持度也在不断提升。这些浏览器对 DOM 的支持各不相同,但对 Level 3 的支 持日益趋于规范。HTML5 中收录的 BOM 会因浏览器而异,不过开发者仍然可以假定存在很大一部分 公共特性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值