JavaScript因互联网而生,紧跟浏览器的发展而发展。
1990年,欧洲核能研究所(CERN)科学家在互联网(Internet)基础上,发明了万维网(World Wide Web),从此可以再网上浏览网页文件。(互联网是线路、协议以及通过TCP、IP协议实现数据电子传输的硬件和软件的集合体。Internet提供的主要服务有万维网WWW、文件传输FTP、电子邮件E-mail、远程登录Telnet等。万维网则存在于互联网之上,是由无数个网络站点和网页集合而成,构成了因特网主要的部分。如果把互联网看成是基础,万维网就可以被看成是对互联网的应用)
1992年,美国国家超级电脑应用中心(NCSA)开发了人类历史上第一个浏览器Mosaic。
1994年,NCSA的程序员联合一个风投家成立Mosaic通信公司,后来更名为Netscape。开发面向普通用户的新一代浏览器Netscape Navigator1.0版,市场份额一举超过90%。
1995 年,网景公司一位名叫 Brendan Eich 的工程师,开始为即将发布的 Netscape Navigator 2 开发一 个叫 Mocha(后来改名为 LiveScript)的脚本语言。当时的计划是在客户端和服务器端都使用它,它在 服务器端叫 LiveWire。
为了赶上发布时间,网景与 Sun 公司结为开发联盟,共同完成 LiveScript 的开发。就在 Netscape Navigator 2 正式发布前,网景把 LiveScript 改名为 JavaScript,以便搭上媒体当时热烈炒作 Java 的顺风车。
由于 JavaScript 1.0 很成功,网景又在 Netscape Navigator 3 中发布了 1.1 版本。尚未成熟的 Web 的受 欢迎程度达到了历史新高,而网景则稳居市场领导者的位置。这时候,微软决定向 IE 投入更多资源。 就在 Netscape Navigator 3 发布后不久,微软发布了 IE3,其中包含自己名为 JScript(叫这个名字是为了 避免与网景发生许可纠纷)的 JavaScript 实现。1996 年 8 月,微软重磅进入 Web 浏览器领域,这是网景 永远的痛,但它代表 JavaScript 作为一门语言向前迈进了一大步。
1997 年,JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA)。第 39 技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义”(http://www.ecma-international.org/memento/TC39.htm)。由来自 Netscape、Sun、微软、Borland 和其他一些对脚本编程感兴趣的公司的程序员组成的 TC39 锤炼出了 ECMA-262,该标准定义了名为 ECMAScript 的全新脚本语言。
其实并没有多大关系。
正巧那个时候Java是热度语言之一,发展的正盛,看过诞生篇的小伙伴就知道为什么需要去改名了
像这种科技企业公司,最重视的就是热度流量,拿下市场的占有率,发展企业。
-
核心(ECMAScript)
-
文档对象模型(DOM)
-
浏览器对象模型(BOM)
3.1、ECMAScript
ECMAScript,是ECMA-262定义的语言,不局限于Web浏览器。事实上,这门语言没有输入和 输出之类的方法。ECMA-262 将这门语言作为一个基准来定义,以便在它之上再构建更稳健的脚本语言。
Web 浏览器只是 ECMAScript 实现可能存在的一种宿主环境(host environment)。
宿主环境提供 ECMAScript 的基准实现和与环境自身交互必需的扩展。
扩展(比如 DOM)使用 ECMAScript 核心类型 和语法,提供特定于环境的额外功能。其他宿主环境还有服务器端 JavaScript 平台 Node.js 和即将被淘汰 的 Adobe Flash。
ECMAScript定义了如下部分:
- 语法
- 变量
- 类型
- 语句
- 关键字
- 保留字
- 操作符
- 引用类型(对象)
ECMAScript 只是对实现这个规范描述的所有方面的一门语言的称呼。JavaScript 实现了 ECMAScript,而 Adobe ActionScript 同样也实现了 ECMAScript。
3.2、DOM
文档对象模型(DOM,Document Object Model)是一个应用程序接口(API),用于在HTML中使用扩展的XML。
HTML DOM模型被结构化成对象树
DOM通过创建表示文档的树,能够让开发者随心所欲控制网页的结构和内容。
使用 DOM API, 可以轻松地删除、添加、替换、修改节点。
3.2.1、DOM是必须的
1.DOM的纠纷
在 IE4 和 Netscape Navigator 4 支持不同形式的动态 HTML(DHTML)的情况下,开发者首先可以 做到不刷新页面而修改页面外观和内容。
这代表了 Web 技术的一个巨大进步,但也暴露了很大的问题。 由于网景和微软采用不同思路开发 DHTML,开发者写一个 HTML 页面就可以在任何浏览器中运行的好 日子就此终结。
为了保持 Web 跨平台的本性,必须要做点什么。人们担心如果无法控制网景和微软各行其是,那 么 Web 就会发生分裂,导致人们面向浏览器开发网页。就在这时,万维网联盟(W3C,World Wide Web Consortium)开始了制定 DOM 标准的进程
2.DOM的级别
1998 年 10 月,DOM Level 1 成为 W3C 的推荐标准。这个规范由两个模块组成:DOM Core 和 DOM HTML。
- DOM Core 提供XML文档,简化了操作文档任意部分的方式
- DOM HTML 扩展了Core 提供了对HTML文档对象和方法
注意:
DOM并非只能通过JS来访问,其他的语言同时也实现了。对于浏览器来说,DOM就是ECMAScript实现的,如今已经成为了JS的三大组成部分之一。
DOM Level 2 新增了以下模块,以支持新的接口
- DOM 视图:描述追踪文档不同视图(如应用 CSS 样式前后的文档)的接口。
- DOM 事件:描述事件及事件处理的接口。
- DOM 样式:描述处理元素 CSS 样式的接口。
- DOM 遍历和范围:描述遍历和操作 DOM 树的接口。
DOM Level 3 进一步扩展了 DOM,增加了以统一的方式加载和保存文档的方法(包含在一个叫 DOM Load and Save 的新模块中),还有验证文档的方法(DOM Validation)。
在 Level 3 中,DOM Core 经过扩 展支持了所有 XML 1.0 的特性,包括 XML Infoset、XPath 和 XML Base。
目前,W3C 不再按照 Level 来维护 DOM 了,而是作为 DOM Living Standard 来维护,其快照称为 DOM4。DOM4 新增的内容包括替代 Mutation Events 的 Mutation Observers。
3.3、BOM
浏览器对象模型(Browser Object Model (BOM))允许 JavaScript 与浏览器对话
不存在浏览器对象模型(BOM)的官方标准。
最后
面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
最后
面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
[外链图片转存中…(img-2RldQeyz-1718725821648)]
[外链图片转存中…(img-BlBpmu6U-1718725821649)]
[外链图片转存中…(img-KAD49i8s-1718725821650)]
[外链图片转存中…(img-OTSP5Vsw-1718725821651)]