重读红宝书之JavaScript的历史回顾与组成

2022/1/27 js

海阔凭鱼跃,天高任鸟飞。Hey 你好!我是猫力 Molly

温故而知新,可以为师矣。重读红宝书(第四版)系列文章意在对 JS 知识点复盘整理、查漏补缺,构建自己的前端知识体系。该系列会以自己的理解将红宝书的各个章节知识点整理为文章并发布出来。喜欢的小伙伴欢迎加入我们,让我们一起重读红宝书,温故知新。

# 简短的历史回顾

  • JavaScript于 1995 年由网景公司一位名叫Brendan Eich的工程师研发诞生,初衷是解决当下为验证简单的表单而需要大量与服务器的往返通信的痛点。
  • 为了赶上发布时间,网景与 Sun 公司结为开发联盟,共同完成 LiveScript 的开发。就在 Netscape Navigator 2 正式发布前,网景把 LiveScript 改名为 JavaScript,以便搭上媒体当时热烈炒作 Java 的顺风车。
  • JavaScript1.0发布后,取得巨大成功。网景公司稳居市场领导者位置。同一时间段,微软坐不住了,决定向IE投入更多资源,不久便发布了IE3并对JavaScript有了新的实现语言名为JScript
  • 由于微软的强势加入,此时市面上存在两个版本的JavaScript,急需将其规范化,标准化
  • 1997 年,JavaScript 1.1 作为提案被提交给欧洲计算机制造商协会(ECMA)。之后改组织发布ECMAScript成为了新的脚本语言标准
  • 1998 年,国际标准化组织(ISO)和国际电工委员会(IEC)也将 ECMAScript 采纳为标准(ISO/IEC-16262)。自此以后,各家浏览器均以 ECMAScript 作为自己 JavaScript 实现的依据

# JavaScript

完整的JavaScript应该包含三部分内容

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

他们处于一个包含关系

image.png

# ECMAScript

ECMAScript作为一门脚本语言,并不局限于 web 浏览器,而是作为一个基准来定义,可以在其之上再构建更稳定的脚本语言。web 浏览器只是作为ECMAScript实现的一种宿主环境,其他的宿主环境还有服务器端JavaScript平台Node.js

抛开浏览器部分,ECMAScript在基本层面描述了这门语言的如下部分:

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

# DOM

dom表示文档对象模型,用于操作html页面节点

一段html代码最终会体现为一颗dom树。例如:

<html>
  <head>
    <title>molly</title>
  </head>
  <body>
    <p>I'm Molly</p>
    <h1>Hello World!</h1>
  </body>
</html>
1
2
3
4
5
6
7
8
9

如上代码通过DOM可以表示为:

image.png

通过操作dom api,我们可以轻松的实现节点的增删改查以及鼠标键盘的用户交互事件

# BOM

bom表示浏览器对象模型 用于支持访问和操作浏览器的窗口

html5规范了bom的相关标准与特性,整体来说,bom主要针对浏览器窗口和拓展,例如:

  • 弹出新浏览器窗口的能力
  • 移动、缩放和关闭浏览器窗口的能力
  • navigator对象,提供关于浏览器的详情信息
  • location对象,提供浏览器加载页面详情信息
  • screen对象,提供关于用户屏幕分辨率详情信息
  • ...

# 总结

JavaScript 是一门用来与网页交互的脚本语言,主要由三部分组成

  • ECMAScript:定义并提供核心功能实现
  • dom:提供与网页内容交互的api
  • bom:提供与浏览器交互的api
  • 目前以上三部分内容都得到了大部分浏览器不同程度的支持,所有浏览器对于es5提供了完善支持,而对于es6+也在不断支持。时代在发展,科技在进步,让我们摒弃ie拥抱Chrome

# 感谢

欢迎关注我的个人公众号前端有猫腻 (opens new window)每天给你推送新鲜的优质好文。回复 “福利” 即可获得我精心准备的前端知识大礼包。愿你一路前行,眼里有光!

该系列持续更新中,喜欢的小伙伴欢迎加入我们,让我们一起重读红宝书,温故知新。微信:猫力 molly (opens new window)

最后更新时间: 2022/1/27 下午10:30:10