JavaScript高级程序设计学习笔记——第一章JavaScript简介

来源:互联网 发布:淘宝密码修改中心 编辑:程序博客网 时间:2024/05/01 13:37

今天和同事一起打算重新巩固一下js基础,就从大名鼎鼎的《JavaScript高级程序设计》开始,希望能够坚持下来,共同进步。


第一章主要内容:

  • JavaScript历史回顾
  • JavaScript是什么
  • JavaScript与ECMAScript关系
  • JavaScript的不同版本

JavaScript简史

这节主要有几个关键的时间节点和一场NetScape与微软的浏览器大战。以前听boss说过NetScape的Netscape Navigator曾经占领了浏览器市场,后来与微软的IE大战败下阵来都是很久以前发生的事情了。其中在1995年,JavaScript随着Netscape Navigator 2的发布诞生了,原名是LiveScript,为了和已经很红火的Java沾上关系,就改成了JavaScript。随后在1996年,NetScape在Netscape Navigator 3中发布了JavaScript 1.1,而微软则在IE 3中也加入了JavaScript的实现,名为JScript。

标准化自然提到了议事日程,以JavaScript 1.1为蓝本,1997年,大名鼎鼎的ECMAScript由ECMA(欧洲计算机制造商协会)的TC39(39号技术委员会)制定完成的ECMA-262标准所定义。在书中找到了ECMAScript的发音/ek-ma-script/,终于再也不用小心翼翼不敢读这个单词了!


JavaScript实现

完整的JavaScript由三个部分组成

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

ECMAScript

ECMAScript与浏览器没有依赖关系,Web浏览器相当于ECMAScript的宿主环境之一。主要由语法、类型、语句、关键字、保留字、操作符、对象组成。

ECMAScript的版本

  • 现在很火的ES 6,从2015年开始,由年代命名了,在我的生日6月17日那天发布了ECMAScript 2015,据说增加了很多很屌的特性,ES6增添了许多必要的特性,例如:模块和类,以及一些实用特性,例如Maps、Sets、Promises、生成器(Generators)等。
  • 之前的版本,ES 1本质上与JavaScript 1.1相同;ES 2在1998年发布,并没有新增、修改和删节,为了和ISO/IEC-16262一致;1999年,ES 3.0发布,成为JavaScript的通行标准,得到了广泛支持;而2007年悲剧的ES 4.0草案发布,由于改动过大遭到很多大佬的反对,在2008年中止ES 4.0的开发,而将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,也就是现在的ES 5。随后在2011年,ES 5.1版发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。

Web浏览器对ECMAScript的支持

在2008年,五大主流浏览器(IE、Firefox、Safari、Chrome、Opera)全部做到了与ECMA-262兼容。

文档对象模型(DOM)

  • DOM是针对XML,经过扩展用于HTML的API。
  • DOM将整个页面映射为一个多层节点结构,就是我们常说的DOM树。
  • DOM级别
    • DOM1级:主要映射文档结构
      • DOM Core:规定了如何映射基于XML的文档结构
      • DOM HTML:在DOM Core基础上添加了针对HTML的对象和方法
    • DOM2级:
      • DOM Views:定义了跟踪不同文档视图的接口
      • DOM Events:定义了事件和事件处理的接口
      • DOM Style:定义了基于CSS为元素应用样式的接口
      • DOM Traversal and Range:定义了遍历和操作文档树的接口
    • DOM3级
      • DOM Load and Save:统一加载嗯哼保存文档的方法
      • DOM Validation:验证文档的方法
      • DOM Core的扩展:支持XML 1.0规范

浏览器对象模型(BOM)

    书上说有了HTML5之后,BOM的实现细节有望朝着兼容性越来越高的方向发展。这点以后再做了解。

另外,从根本上讲,BOM只处理浏览器窗口和框架;但人们习惯上吧所有针对浏览器的JavaScript扩展算作BOM的一部分。比如:

  • 弹出新窗口
  • 移动、缩放、关闭浏览器窗口
  • 提供浏览器详细信息的navigator对象
  • 提供浏览器加载页面的详细信息的location对象
  • 提供用户显示器详细信息的screen对象
  • cookies
  • XMLHttpRequest和IE的ActiveXObject自定义对象

总结

这一章很短,每个语言都有自己的故事,有很多历史原因,NetScape和微软的浏览器大战,JavaScript的发展,ECMAScript到底是啥,DOM和BOM傻傻分不清楚,各种JavaScript、ECMAScript版本以及各大浏览器对其的支持等等。
0 0