JavaScript高程设计第一章---什么是JavaScript

文章目录

  • 前言
  • 一、JavaScript实现
  • 二、ECMAScript
    • 1.ECMAScript概念
    • 2.ECMAScript版本
    • 3.ECMAScript符合性
  • 三、DOM
    • 1.DOM概念
    • 2.DOM级别
  • 三、BOM
    • 1.BOM概念

前言

通过自身对前端的学习和认知,发现仅仅通过看教学视频来学习前端是不够的,还需要通过阅读相关的前端书籍来扩大自己的知识面。今天我就来总结一下自己通过阅读《JavaScript高级程序设计》这本书第一章的笔记。


提示:以下是本篇文章正文内容,下面案例可供参考

一、JavaScript实现

完整的JavaScript包含以下几个部分:
JavaScript包括:核心(ECMAScript)、DOM(文档对象模型)、BOM(浏览器对象模型)

JavaScript高程设计第一章---什么是JavaScript_第1张图片

二、ECMAScript

1.ECMAScript概念

ECMAScript,即ECMA-262定义的语言,并不局限于Web浏览器。Web浏览器只是ECMAScript实现可能存在的一种宿主环境。宿主环境提供ECMAScript的基准实现与环境自身交互必须的扩展。
扩展(比如DOM)使用ECMAScript核心类型和语法,提供特定于环境的额外功能。其他宿主环境还有服务器端JavaScript平台Node.js和即将被淘汰的Adobe Flash。

如果不涉及Web浏览器的话,ECMA-262到底定义了什么?在基本的层面,他描述这门语言的如下部分:

  1. 语法
  2. 类型
  3. 语句
  4. 关键字
  5. 保留字
  6. 操作符
  7. 全局对象

ECMAScript只是对实现这个规范描述的所有方面的一门语言的称呼。JavaScript实现了ECMAScript,而Adobe Flash也实现了ECMAScript。

2.ECMAScript版本

  1. ECMAScript不同的版本以“edition”表示(也就是描述特定实现的ECMA-262版本)。ECMA-262的第1版本质上和网景JavaScript1.1相同,只不过删除了所有浏览器特定的代码,外加少量细微的修改。ECMA-262要求支持Unicode标准(以支持多种语言),而且对象要与平台无关(Netscape JavaScript1.1的对象不是这样,比如它的Date对象就依赖平台)。
  2. ECMA-262的第2版只是做了一些编校工作,主要是为了更新之后严格符合ISO/IEC-16262的要求,并没有增加或改变任何特性。ECMAScript通常不使用第2版来衡量符合性。
  3. ECMA-262的第3版第一次真正对这个标准进行更新,更新了字符串处理、错误定义和数值输出。此外还增加了对正则表达式、新的控制语句、try/catch异常处理的支持,以及为了更好的让标准国际化所做的少量修改。
  4. ECMA-262的第4版是对这门语言的一次彻底修订。第4版包括强类型变量、新语句和数据结构、真正的类和经典的继承,以及操作数据的新手段。 与此同时,TC39委员会的一个子委员会提出了另一个提案,叫作“ECMAScript3.1”,只是对这门语言做了较少的改进。这个子委员会认为第4版对这门语言来说,跳跃太大了。最终ES3.1得到了TC39委员会的支持,导致ECMA-262的第4版在正式发布之前就被放弃了。
  5. ECMA-262的第5版实际上就是ECMAScript3.1。第5版致力于厘清第3版存在的歧义,增加了新功能。新功能包括:原生的解析和序列化JSON数据的JSON对象、方便继承和高级属性定义的方法,以及新的增强ECMAScript引擎解释和执行代码能力的严格模式。
  6. ECMA-262的第6版,俗称ES6、ES2015或ES Harmony(和谐版)。ES6正式支持了类、模块、迭代器、生成器、箭头函数、期约、反射、代理和众多新的数据类型。
  7. ECMA-262的第7版,俗称ES7或ES2016,这次修订包含少量语法层面的增强,如Array.prototype.includes和指数操作符。
  8. ECMA-262的第8版,俗称ES8或ES2017。这一版主要增加了异步函数(async/await)、SharedArrayBuffer及Atomics API,以及Object.values()/Object.entries()/Object.getOwnPropertyDescriptors()和字符串填充方法,另外明确支持对象字面量最后的逗号。
  9. ECMA-262的第9版,俗称ES9或ES2018。这次修订包括异步迭代、剩余和扩展属性、一组新的正则表达式属性、Promise finally(),以及模板字面量修订。
  10. ECMA-262的第10版,俗称ES10或ES2019。这次修订增加了Array.prototype.flat()/flatMap()、String.prototype.trimStart()/trimEnd()、Object.fromEntries()方法,以及Symbol.prototype.description属性,明确定义了Function.prototype.toString()的返回值并固定了Array.prototype.sort()的顺序。另外这次修订解决了与JSON字符串兼容的问题,并定义了catch语句的可选绑定。

3.ECMAScript符合性

要成为ECMAScript符合性实现,必须满足:

  1. 支持ECMA-262中描述的所有“类型、值、对象、属性、函数以及程序语法与定义”
  2. 支持Unicode字符标准(符合性实现还可以满足以下要求:)
  3. 增加ECMA-262未提及的“额外的类型、值、对象、属性、函数”
  4. 支持ECMA-262中没有定义的“程序和正则表达式语法”

三、DOM

1.DOM概念

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

2.DOM级别

1998年10月,DOM Level1成为W3C组织的推荐标准。DOM Level1的目标是映射文档结构。这个规范由DOM Core和DOM HTML两个模块组成。
DOM Core提供了一种映射XML文档,从而方便访问和操作文档任意部分的方式;DOM HTML扩展了DOM Core,增加了特定于HTML的对象和方法。

DOM Level2新增了以下模块:

  1. DOM视图:描述追踪文档不同视图的接口
  2. DOM事件:描述事件及事件处理的接口
  3. DOM样式:描述处理元素CSS样式的接口
  4. DOM遍历和范围:描述遍历和操作DOM树的接口

DOM Level3进一步扩展了DOM,增加了以统一的方式加载和保存文档的方法(包含在一个叫DOM Load and Save的新模块中),还有验证文档的方法(DOM Validation)。在Level3中,DOM Core经过扩展支持了所有XML1.0的特性,包括XML Infoset、XPath、XML Base。
目前,W3C不在按照Level来维护DOM了,而是作为DOM Living Standard来维护,其快照成为DOM4。DOM4新增的内容包括替代Mutation Events的Mutation Observers。

其他DOM:除了DOM Core和DOM HTML接口,有些其他语言也发布了自己的DOM标准。
下面列出的语言是基于XML的,每一种都增加了该语言特有的DOM方法和接口:

  1. 可伸缩矢量图(SVG,Scalable Vector Graphics)
  2. 数学标记语言(MathML,Mathematical Markup Language)
  3. 同步多媒体集成语言(SMIL,Synchronized Multimedia Integration Language)

三、BOM

1.BOM概念

IE3和Netscape Navigator3提供了浏览器对象模型(BOM,Browser Object Model)API,用于支持访问和操作浏览器的窗口
BOM主要针对浏览器窗口和子窗口(frame),我们通常会把任何特定于浏览器的扩展都归在BOM范畴内。下面,即是一些扩展:

  1. 弹出新浏览器窗口的能力
  2. 移动、缩放、关闭浏览器窗口的能力
  3. navigator对象,提供关于浏览器的详尽信息
  4. location对象,提供浏览器加载页面的详尽信息
  5. screen对象,通过关于用户屏幕分辨率的详尽信息
  6. performance对象,通过浏览器内存占用、导航行为和时间统计的详尽信息
  7. 对cookie的支持
  8. 其他自定义对象,如XMLHttpRequest和IE的ActiveXObject

你可能感兴趣的:(javascript)