【JavaScript高级程序设计】第一章-JavaScript简介

113 阅读4分钟

第一章:JavaScript简介

本章介绍JavaScript的起源、发展过程、现状以及JavaScript的实现。

1. JavaScript起源

诞生于1995年,主要为了解决由服务端语言负责的一些输入验证操作,优化用户体验。

2. JavaScript发展

  • 1995年, Netscape公司的布兰登·艾奇,开发名为LiveScript的脚本语言,为了搭上当时热炒的Java顺风车,改名为JavaScript;
  • 网景发布了JavaScript1.1。微软出于竞争原因,在IE3中加入了名为JScript的JavaScript实现;此时意味着出现了两个版本的JavaScript;
  • JavaScript标准化: 欧洲计算机协会(ECMA)组织技术委员会完成了ECMA-262——定义一种名为ECMAScript的新脚本语言标准;
  • 1997年,内置JavaScript1.2的Netscape Navigator4发布;年底,ECMA-262第1版也被接受并实现了标准化。但JavaScript1.2与ECMAScript的第1版并不兼容;
  • Netscape Navigator4.06中发布JavaScript1.3,从而做到了与ECMA-262的第一个版本完全兼容;
  • 2008年,五大主流 Web 浏览器(IE、Firefox、Safari、Chrome 和 Opera)全部做到了与 ECMA-262兼容。

3. JavaScript现状

  • JavaScript不再局限于简单的表单验证,而是具备了与浏览器窗口及其内容等几乎所有方面交互的能力。
  • JavaScript是一门功能全面的编程语言,能够处理复杂的计算和交互。

4. JavaScript的实现/组成

JavaScript由三个部分: ECMAScript(核心)、DOM(文档对象模型)、BOM(浏览器对象模型) WX20240829-143938@2x.png

4.1 ECMAScript

ECMAScript实际上是一个由欧洲计算机制造商协会(ECMA)通过 ECMA-262 标准制定的脚本语言规范,它是 JavaScript语言的标准化基础。

ECMAScript宿主环境

ECMAScript的宿主环境是指能够执行ECMAScript代码的环境,有如下几种:

WX20240829-170145@2x.png

ECMAScript的组成

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

ECMAScript的版本

ECMAScript版本发展过程按照如下时间线总结列出:

WX20240829-165900@2x.png

4.2 DOM(文档对象模型Document Object Model)

  • 什么是DOM

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

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

    如下为HTML页面和对应图形化DOM树展示:

WX20240829-172342@2x.png

  • DOM级别

    1. Internet Explorer 4 和 Netscape Navigator 4 分别支持的不同形式的 DHTML(可以叫为DOM0)
    2. DOM1 : 于1998成为W3C的推荐标准。DOM1级由两个模块组成:DOM核心(DOM Core)和 DOM HTML。
    3. DOM2 : 扩充了鼠标和用户界面事件、范围、遍历(迭代 DOM文档的方法)等细分模块,而且通过对象接口增加了对CSS的支持。DOM1级中的DOM核心模块也经过扩展开始支持 XML 命名空间。
    4. DOM3: 引入了以统一方式加载和保存文档的方法; 新增了验证文档的方法进行了扩展,支持XML1.0
  • 其他DOM:

    除了DOM核心和DOM HTML接口之外,另外几种语言还发布了只针对自己的DOM标准。

    • SVG(可伸缩矢量图)1.0;
    • MathML(数学标记语言)1.0;
    • SMIL(同步多媒体集成语言)。

4.3 BOM(浏览器对象模型Browser Object Model)

​ 提供访问和操作网页内容的方法和接口。

​ 主要功能:

  • 弹出新浏览器窗口的功能;
  • 移动、缩放和关闭浏览器窗口的功能;
  • 提供浏览器详细信息的 navigator 对象;
  • 提供浏览器所加载页面的详细信息的 location 对象;
  • 提供用户显示器分辨率详细信息的 screen 对象;
  • 对 cookies 的支持;
  • 像 XMLHttpRequest 和 IE 的 ActiveXObject 这样的自定义对象;
  • ...

[相关内容]

  • [1] 著者.JavaScript高级程序设计[M].人民邮电出版社,(美)泽卡斯(ZAkas,N.C.) , 李松峰,曹力 译,2012.3