一个完整的 JavaScript 实现应该由下列三个不同的部分组成(见图 1-1)。

 核心(ECMAScript)

 文档对象模型(DOM)

 浏览器对象模型(BOM)

1.ECMAScript

由 ECMA-262 定义的 ECMAScript 与 Web 浏览器没有依赖关系。实际上,这门语言本身并不包含输入和输出定义。ECMA-262 定义的只是这门语言的基础,而在此基础之上可以构建更完善的脚本语言。我们常见的 Web 浏览器只是 ECMAScript 实现可能的宿主环境之一。宿主环境不仅提供基本的ECMAScript 实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。而这些扩展——如DOM,则利用 ECMAScript 的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作。其他宿主环境包括 Node(一种服务端 JavaScript 平台)和 Adobe Flash。

既然 ECMA-262 标准没有参照 Web 浏览器,那它都规定了些什么内容呢?大致说来,它规定了这门语言的下列组成部分:

 语法

 类型

 语句

 关键字

 保留字

 操作符

 对象

ECMAScript 就是对实现该标准规定的各个方面内容的语言的描述。JavaScript 实现了 ECMAScript,Adobe ActionScript 同样也实现了 ECMAScript。

1.2 文档对象模型(DOM)

文档对象模型(DOM,Document Object Model)是针对 XML 但经过扩展用于 HTML 的应用程序编程接口(API,Application Programming Interface)。DOM 把整个页面映射为一个多层节点结构。HTML或 XML 页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。看下面这个

HTML 页面:

<html>

<head>

<title>Sample Page</title>

</head>

<body>

<p>Hello World!</p>

</body>

</html>

在 DOM 中,这个页面可以通过图 1-2 所示的分层节点图表示。通过 DOM 创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助DOM 提供的 API,开发人员可以轻松自如地删除、添加、替换或修改任何节点。

1.3 浏览器对象模型(BOM)

开发人员使用 BOM 可以控制浏览器显示的页面以外的部分。而 BOM 真正与众不同的地方(也是经常会导致问题的地方),还是它作为 JavaScript 实现的一部分但却没有相关的标准。这个问题在 HTML5 中得到了解决,HTML5 致力于把很多 BOM 功能写入正式规范。HTML5 发布后,很多关于 BOM 的困惑烟消云散。

从根本上讲,BOM 只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的 JavaScript 扩展算作 BOM 的一部分。下面就是一些这样的扩展:

 弹出新浏览器窗口的功能;

 移动、缩放和关闭浏览器窗口的功能;

 提供浏览器详细信息的 navigator 对象;

 提供浏览器所加载页面的详细信息的 location 对象;

 提供用户显示器分辨率详细信息的 screen 对象;

 对 cookies 的支持;

 像 XMLHttpRequest 和 IE 的 ActiveXObject 这样的自定义对象。

小结:

JavaScript 是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成:

 ECMAScript,由 ECMA-262 定义,提供核心语言功能;

 文档对象模型(DOM),提供访问和操作网页内容的方法和接口;

 浏览器对象模型(BOM),提供与浏览器交互的方法和接口。

JavaScript 的这三个组成部分,在当前五个主要浏览器(IE、Firefox、Chrome、Safari 和 Opera)中都得到了不同程度的支持。其中,所有浏览器对 ECMAScript 第 3 版的支持大体上都还不错,而对ECMAScript 5 的支持程度越来越高,但对 DOM 的支持则彼此相差比较多。对已经正式纳入 HTML5 标准的 BOM 来说,尽管各浏览器都实现了某些众所周知的共同特性,但其他特性还是会因浏览器而异。

javascript写入xml_Javascript学习笔记(1)相关推荐

  1. JavaScript 权威指南-学习笔记(一)

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! JavaScript 权威指南-学习笔记 ...

  2. 7 种 Javascript 常用设计模式学习笔记

    7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...

  3. JavaScript高级程序设计学习笔记(三)

    分享一下第五章(引用类型)的笔记,内容比较多,我拆成了两部分,今天这部分是关于Object.Array.Date和RegExp类型的. 以下的笔记是书上一些我以前学习的时候,没有太重视的js基础知识, ...

  4. javascript高程3 学习笔记(二)

    ECMAScript function的理解 ECMAScript 函数与其他语言函数最大的不同在于,其不介意传入多少参数以及参数的类型 比如函数的形参有两个,但是调用函数传入的参数可以写一个,三个或 ...

  5. JavaScript程序库jQuery学习笔记分享(二)jQuery对象和DOM操作,和其他js库冲突处理

    今天我继续更新jQuery学习笔记,最近考试比较忙,也就更新的比较慢了,这里向大家说一声抱歉,嘻嘻. 让那不愉快的情绪过去吧,继续进行我们的jQuery之旅吧. 一:jQuery对象和DOM对象 1. ...

  6. 尚硅谷JavaScript高级教程(javascript实战进阶)学习笔记

    前言 这个是我学习过程中的笔记,分享给大家,希望对大家有用. 学习内容是尚硅谷JavaScript高级教程(javascript实战进阶),这里是视频链接. 我在前面有两篇对于web前端HTML和CS ...

  7. JavaScript超全学习笔记+Web经典案例,赶快收藏

    青春啊,永远是美好的,可是真正的青春,只属于这些永远力争上游的人,永远忘我劳动的人,永远谦虚的人! 最近收到不少的优秀学生投稿,他们有投稿手写笔记.有手写博客.也还有视频.小编也从中挑出几篇较为优秀的 ...

  8. JavaScript 30 - 3 学习笔记

    今天学习的是JavaScript 30-3 ---css Variables 实现的效果如下图所示. 废话不多,我们直接来看代码. html: <h1>大家好,这个一个<span c ...

  9. JavaScript 封装插件学习笔记(一)

    此篇只是笔记,在借鉴.参考.模仿的过程,可能不完整,请多指教! 定义插件名称要注意命名冲突,防止全局污染. 1.第一种Javascript对象命名:(Javascript语言是"先解析,后运 ...

最新文章

  1. 转换ArrayList String 到String []数组[重复]
  2. python字符编码导致dict中key不同
  3. rs232读取智能电表_【技术文章】蜂窝物联网PoC为智能电表连接指引路向
  4. 计算机更改了用户名数据恢复,怎么把电脑更换用户后恢復到原来的用户呢?
  5. [BZOJ4349]最小树形图
  6. C语言hello work的编译过程分解
  7. js 改变this指向的几种方法(个人学习笔记)
  8. bash脚本使用记录
  9. 如何编写一个好的测试用例
  10. 开发好的项目必须要有好的需求
  11. python的jieba分词词性标注
  12. vue复选框组件自定义对勾_关于vue的列表图片选中打钩操作
  13. 浅析RTB和RTA(一)
  14. Alevel英美文学中的女性意识觉醒
  15. android 绘画笔迹回放_Android画板 半透明画笔 笔迹叠加效果
  16. ceil — 进一法取整 4.1 = 5 5.9 = 6 取小数点两位
  17. 河北大学计算机学院赵润,2010年河北省高招录取名单(7月20日)41
  18. Beta版本使用说明
  19. Eclipse 国内镜像下载
  20. 专业导论-课后总结-2019.12.12-V1.0

热门文章

  1. [工具]-脚本自动化工具:按照linux kernel标准格式化输出文件(format_file)
  2. linux kernel使用技巧
  3. Django框架连接MySQL数据库
  4. 布隆过滤器Redis缓存穿透雪崩击穿热点key
  5. 密码篇——非对称加密
  6. IDEA是否会嫌导jar包麻烦吗???赶快来学习maven吧,冲冲冲
  7. 寒假每日一题(提高组)【Week 2 完结】
  8. 第四章 数学知识【完结】
  9. 3.1.3 覆盖与交换
  10. python 多进程共享变量manager_python 进程间共享数据 multiprocessing 通信问题 — Manager...