【JavaScript】ECMAScript/DOM/BOM
JavaScript介绍
Web早期,客户端校验网页表单会频繁地与服务端进行通信而消耗大量的网络资源,在网速本就很慢的时代,这十分影响用户交互体验。为了解决这一问题,网景作为当时引领技术革新的公司,计划为客户端开发一个脚本语言,让客户端也具备简单的表单数据验证的能力。
1995年,网景公司一位名叫Brendan Eich的工程师,开始为即将发布的Netscape Navigator 2开发一个叫Mocha(后来改名为LiveScript)的脚本语言。当时的计划是在客户端和服务器端都使用它,它在服务器端叫LiveWire。为了赶上发布时间,网景与Sun公司结为开发联盟,共同完成LiveScript的开发。就在Netscape Navigator 2正式发布前,网景把LiveScript改名为JavaScript,以便搭上媒体当时热烈炒作Java的顺风车。至此,JavaScript1.0诞生。
接着,网景在Netscape Navigator 3中发布了JavaScript的1.1版本。微软紧接着也发布了IE3,其中包含了名为JScript的JavaScript的实现。至此,出现了两个版本的JavaScript。由于JavaScript此时还没有语法和特性相关的规范,随着web的不断发展,业界对于两个版本的JavaScript的发展前景担忧日甚。
ECMAScript介绍
1997年,JavaScript 1.1作为提案被提交给欧洲计算机制造商协会(Ecma)。由来自网景、Sun、微软、Borland、Nombas和其他对这门脚本语言有兴趣的公司的工程师组成的TC39(第39技术委员会)承担了“标准化一门通用、跨平台、厂商中立的脚本语言的语法和语义”的任务。
经过数月研究讨论,TC39打造出了ECMA-262,并将其作为ECMAScript这个新脚本语言的标准。1998年,国际标准化组织(ISO)和国际电工委员会(IEC)也将ECMAScript采纳为标准(ISO/IEC-16262)。自此以后,各家浏览器均以ECMAScript作为自己JavaScript实现的依据。
ECMAScript是ECMA-262标准中定义的一种面向对象的编程语言,但它没有关于外部数据输入或计算结果输出的说明,而是被当做一个基准,以便在其之上构建更稳健的脚本语言。
ECMAScript和ECMA-262的关系:ECMA-262是欧洲计算机制造商协会第39技术委员会制定的一套脚本语言规范,该规范定义了一门名为ECMAScript的脚本语言。
ECMAScript和JavaScript的关系:ECMAScript只是对实现这个规范描述的所有方面的一门语言的称呼。JavaScript实现了ECMAScript,所以JavaScript只是ECMAScript的一种实现形式。曾经的Adobe Flash使用的脚本语言ActionScript也实现了ECMAScript,同样也是ECMAScript的一种实现形式。
DOM
参考资料:https://dom.spec.whatwg.org/
文档对象模型(DOM, Document Object Model)是一个访问和操作文档(特别是 HTML 和 XML 文档)的应用编程接口(API)。DOM将整个页面抽象为一组分层节点。HTML或XML页面的每个组成部分都是一种节点,包含不同的数据。开发者可以通过使用DOM API实现对节点的删除、添加、替换、修改操作,进而实现对网页内容和结构的控制。
BOM
浏览器对象模型(Browser Object Model)提供了独立于内容而与浏览器窗口进行交互的对象。BOM的API主要是针对浏览器窗口的,但人们通常会把于浏览器强相关的对象或功能也归为BOM的范畴,如:
弹出新浏览器窗口的能力;
移动、缩放和关闭浏览器窗口的能力;
navigator对象,提供关于浏览器的详尽信息;
location对象,提供浏览器加载页面的详尽信息;
screen对象,提供关于用户屏幕分辨率的详尽信息;
performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;
对cookie的支持;
其他自定义对象,如XMLHttpRequest和IE的ActiveXObject。
BOM是在缺乏规范的背景下发展起来的,浏览器开发商都按照自己的意愿来为它添砖加瓦。最终,浏览器实现之间共通的部分成为了事实标准,为Web开发提供了浏览器间互操作的基础。HTML5规范中有一部分涵盖了BOM的主要内容,因为W3C希望将JavaScript在浏览器中最基础的部分标准化。
BOM的核心是window对象,表示浏览器的实例。window对象在浏览器中有两重身份,一个是ECMAScript中的Global对象,另一个就是浏览器窗口的JavaScript接口。这意味着网页中定义的所有对象、变量和函数都以window作为其Global对象,都可以访问其上定义的parseInt()等全局方法。
原文地址:https://blog.csdn.net/xlt_jbwkj/article/details/137743780
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!