JavaScript高级程序设计(第三版)第一章读书笔记

JavaScript简史

JavaScript诞生于1995年,在没有JavaScript的时候,所有输入验证操作都必须由服务器端进行验证,在那个年代,人们还普遍使用电话拨号上网,导致了与服务器的每一次数据交换都成为了对人们耐心的考验。

发展时间线

  • 1995-02:Netscape开发JavaScript 1.0完毕
  • 1996-08:微软开发JScript,与Netscape相竞争
  • 1997:ECMA(欧洲计算机制造商协会)指定TC39技术委员会进行JavaScript和JScript的标准化进程,数月之后,ECMAScript出现了
  • 1998:ISO/IEC也将ECMAScript作为标准,从此,浏览器开发商就以ECMAScript作为各自JavaScript实现的基础

JavaScript实现

JavaScript的内容比ECMAScript多得多。一个完整的JavaScript实现包含三个部分:

  • 核心(ECMAScript),也可以说成是基础,根基
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)

1 ECMAScript

ECMAScript是一个标准,它规定了脚本语言的基础,如基本数据类型,语法规范,操作符等,应注意的是它与web浏览器并没有依赖关系;而JavaScript是ECMAScript的一种实现,依赖于浏览器环境,并根据浏览器的特性扩展了ECMAScript如DOM,便于语言与环境之间的交互。其它ECMAScript的宿主环境如Node和Adobe Flash。

1.1 ECMAPScript规定了什么内容?

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 操作符
  • 对象

这里可以这样理解:ECMAScript是实现该标准规定的各个方面内容的语言的描述,如“应该有什么数据类型”,“应该怎么定义对象”,“循环、判断语句怎么写”类似的问题,但ECMAScript不作具体实现。

我认为这与SFS和GeoJSON、shp之间的关系十分类似,前者制定标准,后者进行实现(GIS专业知识,看不懂请忽略)

1.2 如何实现ECMAScript?

简单来说,想要成为ECMAScript所认可的实现,则这个实现必须具备:

  • 支持ECMAScript所描述的所有“类型、值、对象、属性、函数以及程序句法和语义”
  • 支持Unicode字符标准

实现可以进行扩展:

  • 添加其他“类型、值、对象、属性、函数”
  • 可以扩展定义ECMAScript没有定义的“程序和正则表达式”

因此,这为基于ECMAScript开发新语言的程序员提供了莫大的便利。

2 文档对象模型(DOM)

文档对象模型(DOM,Document Object Model)是针对XML但经过扩展用于HTML的应用程序编程接口。

DOM把整个页面映射为一个多层节点结构。使得开发人员能够方便的控制页面的内容和结构,轻松自如地删除、添加、替换和修改任何节点。

2.1 为什么要使用DOM?

DOM亦是一个标准,目的是解决由于DHTML的出现造成的问题–由于Netscape和微软在开发DHTML方面各持己见,只编写一个HTML页面就能够在任何浏览器中运行的时代结束了。W3C联盟为了继续保持web跨平台的特性,着手制定了DOM标准。

2.2 DOM级别

DOM1级

  • DOM核心:规定如何映射基于XML的文档结构,简化对文档中任意部分的访问和操作
  • DOM HTML:在DOM核心的基础上加以扩展,添加针对HTML的对象和方法

DOM2级

  • DOM视图:定义了跟踪不同文档视图的接口
  • DOM事件:定义了事件和事件处理的接口
  • DOM样式:定义了基于CSS为元素应用样式的接口
  • DOM遍历和范围:定义了遍历和操作文档树的接口

DOM3级

  • DOM加载和保存
  • DOM验证
  • 对DOM核心加以扩展,支持XML1.0规范

2.3 其它DOM标准

  • SVG:可伸缩矢量图

  • MathML:数学标记语言

  • SMIL:同步多媒体集成语言

    这三个标准也是W3C的推荐标准,各自添加了与自己相关的新方法和新接口。

应注意的是,DOM并不只是针对JavaScript的,很多别的语言也实现了DOM,不过,在web浏览器中,基于ECMAScript实现的DOM的确已经称为JavaScript这门语言的一个重要组成部分。实际上,对于XML,HTML,SVG,MathML,SMIL,JavaScript均已实现了它们所规定的DOM接口,可以轻松访问。

具体到JavaScript,即是JavaScript实现了DOM标准,将页面文档映射为了一个对象。

3 浏览器对象模型(BOM)

BOM可以访问和操作浏览器窗口,开发人员使用BOM可以控制浏览器显示页面以外的部分。

人们习惯上把针对浏览器的JavaScript扩展算作BOM的一部分,主要包括:

  • 弹出新浏览器窗口
  • 移动、缩放、关闭浏览器窗口
  • 提供浏览器详细信息的navigator对象
  • 提供浏览器所加载页面的详细信息的location对象
  • 提供用户显示器分辨率详细信息的screen对象
  • 对cookies的支持

小结

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

  • ECMAScript,提供核心语言功能
  • 文档对象模型(DOM),提供访问和操作网页内容的方法和接口
  • 浏览器对象模型(BOM),提供与浏览器交互的方法和接口

我们需要明确的是,ECMAScript、DOM和BOM都是一种标准,在其中定义了实现这种标准的语言应具备的方法和接口,JavaScript只是实现了这三种标准的语言之一,但由于JavaScript依赖于浏览器,不同的浏览器对于这三个标准的支持不尽相同,早期的前端开发者甚至需要开发好几套页面,尤其是一直遭人诟病的IE浏览器,对标准的支持性较为落后,兼容问题令人头疼。

实际上,当我们提及IE对JavaScript的支持不高时,我们其实是在说IE的JScript对ECMAScript和DOM的支持不高。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值