JS红皮书读书笔记-01-简介

提醒:本文发布于 1552 天前,文章内容可能 因技术时效性过期 或 被重新修改,请谨慎参考。

TOC
  1. 1. 实现
    1. 1.1. ECMAscript
    2. 1.2. DOM
      1. 1.2.1. 级别
    3. 1.3. BOM

简史

JS诞生之前,也就是二三十年前.那时候网速普遍慢, 想象一下: 用户提交表单到服务器之后结果提示用户漏填了一个字段, 本次提交不成功….所以JS初衷是为了处理这种简单的验证.

1995年, NetScape的员工Brendan Eich为NetScape Navigator 2浏览器开发了这种语言, 并命名为Livescript, 但是正式发布的时候, 为了蹭Java的热度, 就把名字改成了JavaScript, 版本为1.0

当然微软眼红, 也着手开发了自己的脚本实现, 叫Jscript. 这为后来苦逼的兼容大战埋下伏笔. 微软和NetScape两家公司的竞争, 让JavaScript的标准化提上了议程.

当时那几个大厂以JavaScript 1.1为蓝本开始构建标准, 也就是我们所知的ECMA-262, 就是ES第一版, 尽管有了约定的行业标准, 但是微软也并没有完全约定, 而是自己实现, 所以IE占有大量市场份额的时候, 有了事实标准行业标准.

目前(2019年), 较广为人知的版本有ES3/5/6.

实现

JavaScript的实现主要有三部分组成

  • ECMAscript
  • DOM
  • BOM

ECMAscript

ECMAscript实际和浏览器没有什么依赖关系 , Web浏览器只是它的宿主环境之一, 其他的宿主环境还有Node, Adobe Flash.

ES主要规定了一下内容:

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

DOM

全称文档对象模型(Document Object Model). 用于HTML应用程序的编程接口.DOM把整个页面映射为一个多层节点结构, DOM提供的API, 能让开发人员轻松地添加/删除/替换/修改页面节点.

为了防止Netscape和微软之争, DOM也有自己的标准: W3C标准(World Wide Web Consortium).

级别

  • DOM0(事实不存在)
  • DOM1: 主要映射文档结构
  • DOM2: 引入了以下新模块
    • DOM视图: 定义了跟踪不同文档视图的接口
    • DOM事件: 定义事件, 事件处理
    • DOM样式: 定义了基于CSS为元素应用样式的接口
    • DOM遍历和范围: 定义了遍历和操作文档树的接口
  • DOM3:
    • 引入统一方式加载和保存文档的方法
    • 新增验证文档的方法
    • 扩展DOM核心, 支持XML1.0规范

BOM

浏览器对象模型(Browser Object Model), 无标准可寻.每个浏览器可以有自己的实现, 但是也会存在事实标准.

BOM根本上来讲: 只处理浏览器窗口和框架, 但是人们习惯上把JS针对浏览器的扩展归纳到BOM范围, 比如以下扩展:

  • 弹出新窗口功能
  • 移动 , 缩放, 关闭浏览器
  • Navigator对象
  • Location对象
  • Screen对象
  • 对Cookies的支持
  • XHR对象, 或者是IE的ActiveXObject对象

访客评论