关于javascript:JavaScript高级程序设计笔记01-什么是JavaScript

51次阅读

共计 2374 个字符,预计需要花费 6 分钟才能阅读完成。

什么是 JavaScript

1995 年问世。

最后在客户端解决某些根本的验证。

名字:Mocha -> LiveScript -> JavaScript

ECMAScript 脚本语言规范:ECMA-262(TC39,第 39 技术委员会)

残缺的的 JavaScript 蕴含:

  • 外围 ECMAScript
  • 文档对象模型 DOM
  • 浏览器对象模型 BOM

宿主环境提供 ECMAScript 的基准实现和与环境本身交互必须的扩大。

ECMA-262 定义了什么:

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

版本更迭

第 1 版:实质上与 JavaScript1.1 雷同,反对 Unicode 规范,对象与平台无关

第 2 版:一些编校

第 3 版(!!):更新了字符串解决、谬误定义和数值输入。另外还减少了对正则表达式、新的管制语句、try/catch 异样解决的反对,等

第 4 版(×):强类型变量、新语句和数据结构、真正的类和经典的继承,以及操作数据的新伎俩

第 5 版(3.1!!!):厘清第 3 版的歧义,减少对 JSON 的反对、不便继承和高级属性定义的办法、减少严格模式

第 6 版(2015.6!!!!):反对类、模块、迭代器、生成器、箭头函数、期约(Promise)、反射、代理和泛滥新的数据类型(Map、Set 等)

第 7 版(2016.6):大量语法层面的加强,如 Array.prototype.includes 和指数操作符

第 8 版(2017.6):减少了异步函数(async/await)、SharedArrayBuffer 及 Atomics API,以及 Object.values()/Object.entries()/Object.getOwnPropertyDescriptors() 和字符串填充办法(?),明确反对对象字面量最初的逗号。

第 9 版(2018.6):异步迭代、残余和扩大属性、一组新的正则表达式个性、Promise finally(),以及模板字面量订正

第 10 版(2019.6):减少了 Array.prototype.flat()/flatMap()、String.prototype.trimStart()/trimEnd()、Object.fromEntries() 办法,以及 Symbol.prototype.description 属性,明确定义了 Function.prototype.toString() 的返回值并固定了 Array.prototype.sort() 的程序。解决了与 JSON 字符串兼容的问题,并定义了 catch 子句的可选绑定(?)

ECMAScript 合乎性:

必须满足的条件

  • 反对 ECMA-262 中形容的所有“类型、值、对象、属性、函数,以及程序语法与语义”;
  • 反对 Unicode 字符

浏览器反对

浏览器 DOM LevelECMAScript 合乎性
IE5.5~8DOM Level1ES3
IE9 ES5(局部)
IE10-11 ES5
Edge12+ ES6
Safari6~8 ES5
Safari9+ ES6
Chrome49+ ES6
FireFox45+ ES6
iOS Safari 9.2+ ES6

DOM

一个利用编程接口(API),用于在 HTML 中应用扩大的 XML。DOM 将整个页面形象为一组分层节点。

动静 HTML:不刷新页面而批改页面外观和内容。

DOM 级别

  • DOM Level1(1998):DOM Core 和 DOM HTML 两个模块。指标:映射文档构造

    DOM Core:提供一种映射 XML 文档,从而不便拜访和操作文档任意局部的形式;DOM HTML 扩大了 Core 并减少了特定于 HTML 的对象和办法。

  • DOM Level2:减少了对鼠标和用户界面事件、范畴、遍历的反对,通过对象接口反对了 CSS。DOM Core 也被扩大以蕴含对 XML 命名空间的反对。

    新增模块:

    • DOM 视图:形容追踪文档不同视图的接口。(如利用 CSS 款式前后的文档)
    • DOM 事件:形容事件及事件处理的接口
    • DOM 款式:形容解决元素 CSS 款式的接口
    • DOM 遍历和范畴:形容遍历和操作 DOM 树的接口
  • DOM Level3:进一步扩大了 DOM,减少了以对立的形式加载和保存文档的办法(DOM Load and Save 的新模块中),还有验证文档的办法(DOM Validation)。DOM Core 扩大以反对所有 XML1.0 的个性,包含 XML Infoset、XPath 和 XML Base。
  • DOM4(DOM Living Standard):新增的内容包含代替 Mutation Events 的 Mutation Observers。

L1+L2(局部)+L3(局部):Opera 9 | Safari2+ | iOS Safari 3.2+ | Chrome 1+ | FF 1+

其余 DOM

基于 XML 的,减少了本人独有的 DOM 办法和接口:

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

BOM

能够操控浏览器显式页面之外的局部。

惟一一个没有相干规范的 JavaScript 实现。<——HTML5

次要针对浏览器窗口和子窗口,通常包含特定于浏览器的扩大:

  • 弹出新浏览器窗口的能力 (window.open)
  • 挪动、缩放和敞开浏览器窗口的能力
  • navigator 对象,提供对于浏览器的详尽信息
  • location 对象,提供浏览器加载页面的详尽信息
  • screen 对象,提供对于用户屏幕分辨率的详尽信息
  • performance 对象,提供浏览器内存占用、导航行为和工夫统计的详尽信息
  • 对 cookie 的反对
  • 其余自定义对象,如 XMLHttpRequest 和 IE 的 ActiveXObject

少数浏览器对 JavaScript 的反对,指的是实现 ECMAScript 和 DOM 的水平。

正文完
 0