curTain

js 历史回顾

  1. 问世缘由

1995年,javascript 问世。在此之前,要验证某个必填字段是否已填写,或某个输入值是否有效,需要与服务端进行一次往返通信,js 的用途就是代替服务端语言处理输入验证。

  1. ECMAScript 与 javascript 的关系

1995 年 Brandan Eich 花了 10 天写出 javascript,并把它内置到网景浏览器2中,让 web 大受欢迎,此时,微软决定向 IE 投入更多资源,网景浏览器3发布不久,微软发布了 IE3,其中包含了自己名为 JScript 的 javascript 实现。
微软的 javascript 实现意味着出现了两个版本的 javascript:网景的 javascript 和 微软的 JScript,1997 年,javascript1.1 作为题提案被提交给欧洲计算机制造商协会(Ecma),第 39 技术委员会承担了“标准化一门通用、跨平台、厂商中立的脚本语言的语法和语义”的任务,此后,各家浏览器均以 ECMAScript 作为自己 JavaScript 实现的一句,虽然具体实现各不相同

JavaScript 的实现

虽然 JavaScript 和 ECMAScript 基本上是同义词,但是 js 不限于 ECMAScript,完整的 JavaScript 包含以下三个部分:

  1. 核心(ECMAScript)
  2. 文档对象模型(DOM)
  3. 浏览器对象模型(BOM)

ECMAScript 概述

ECMAScript 作为一门语言的基准定义,目的是在它之上再构建更稳定的脚本语言

web 浏览器只是 ECMAScript 实现的一种宿主环境,宿主环境提供 ECMAScript 的基准实现和自身交互必须的扩展。扩展(比如 DOM 和 BOM)使用 ECMAScript 核心类型和语法,提供特定环境的额外功能

ECMAScript 版本概述

  1. ES1:本质上与网景的JavaScript1.1相同,删除所有浏览器特定的代码
  2. ES2:只做了一些编校工作
  3. ES3:第一次对标准进行更新,新增字符串处理、错误定义和数值输出,添加了正则、新的控制语句、try/catch的支持
  4. ES4:进行彻底修订,包括强类型变量、新语句和数据结构、真正的类和经典的继承,以及操作数据的新手段,为了避免改动太大,又制定了 ES3.1
  5. ES5:ES3.1 变成了 ES5,于2009年12月发布,添加了序列化和解析 JSON 数据的 JSON 对象、继承、增强 ES 引擎解释和执行代码能力的严格模式
  6. ES6:于2015年6月发布,这一版包含了有史以来最重要的一批增强特性,正式支持了类、模块、迭代器、生成器、箭头函数、期约、反射、代理和众多新的数据类型
  7. ES7:于2016年6月发布,新增少量api,如 Array.prototype.includes 和指数操作
  8. ES8:完成于2017年6月,添加异步函数(async/await)、SharedArrayBuffer
  9. ES9:发布于2018年6月,对原始对象添加方法,如正则和promise
  10. ES10:发布于2019年6月,对原始对象添加方法,如数组,并添加新的语法如:obj?.name?.first

DOM 简介

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

BOM简介

IE3 和 网景浏览器3 提供了浏览器对象模型 API,用于支持访问和操作浏览器的窗口,它是唯一一个没有相关标准的 JavaScript 实现。但是 HTML5 正在规范尽可能多的 BOM 特性

BOM的能力

  1. 弹出新浏览器窗口
  2. 移动、缩放和关闭浏览器窗口
  3. navigator 对象,获取浏览器相关信息
  4. location 对象,网页信息
  5. screen 对象,屏幕信息
  6. performance 对象,提供浏览器占用内存、导航行为等信息
  7. cookie
  8. 其他自定义对象:XMLHttpRequestActiveXObject

 评论