习目标,了解Javascript起源:从哪里来,如何发展,现况。
内容涉及Javascript与ECMAScript的关系、DOM、BOM、以及Ecma和W3C相关的标准。
1995年,网景公司一名叫BrendanEich的工程师为NetscapeNavigator2开发的叫Mocha(后来改名为LiveScript)的脚本语言(它在服务器上叫做LiveWire)。
为赶上进度,Netscape与Sun公司合作开发LiveScript并最终改名为JavaScript(为搭上当时Java热潮的顺风车)。
1997年JavaScript1.1作为提案提交给欧洲计算机制造商协会(Ecma),由第39技术委员会(T39)承担了标准化JavaScript的任务(参见T39-ECMAScript),他们花了数月时间打造出ECMA-262,也就是ECMAScript这个新的脚本语言标准。
1998年,国际标准化组织(ISO)和国际电工委员会(IEC)也将ECMAScript采纳为标准。
从此之后各家浏览器厂商都将ECMAScript作为自己JavaScript实现依据,虽然各家都有各自的不同。
完整的JavaScript不限于ECMA-262所定义的那样。它的结构包含如下:
核心(ECMAScript):
它只是一准脚本语言的规范标准,本身并不局限于Web浏览器。
ECMA-262定义了语言的:语法、类型、语句、关键字、保留字、操作符和全局对象,它甚至没有规定语言的输入输出。
和JavaScript一样Adobe ActionScript同样也实现了ECMAScript.
ECMAScript版本
2019年,ECMAScript发展到第10版。
文档对象模型(DOM)
是一个应用编程接口(API),用于在HTML中使用扩展的XML。
DOM将整个页面抽象为一组分层节点。HTML或XML页面的每个组成部分都是一种节点,包含不同的数据。
DOM通过创建表示文档的树,让开发者可以随心所欲地控制王爷的内容和结构。使用DOPMAPI 可以删除、添加、替换、修改节点。
为保持Web的跨平台性W3C开始了指定DOM标准的进程。
浏览器对象模型(BOM)
使用BOM,开发者可以操控浏览器显示页面之外的部分。
BOM的问题在于他没有制定相关标准,而HTML5补足了这一点,它以正是规范的形式涵盖了尽可能多的BOM特性。
BOM主要针对浏览器窗口和子窗口(frame),人们把任何浏览器的扩展都归在BOM的范畴。
页的基石是内容,而内容在网页上的呈现就必须依附于超文本标记语言(HTML)。
在上一篇文章当中,学记提到了超文本标记语言发展至今,超文本标记语言的版本已经是HTML5了。
现在的网页上有各种各样的资源,除了常见的文字、图片之外,还有影像资源与音频资源。
影像与音频不同于传统的图文资源,由于它们本身是动态的,HTML5中的语句无法进行完整的操作,这种时候就要用到 JAVAScript 来进行嵌套网页编程。
什么是 JAVAScript ?
JavaScript是一种高级的、解释型的编程语言。
JavaScript支持面向对象编程,命令式编程,以及函数式编程。
它提供语法来操控文本、数组、日期以及正则表达式等,不过,它不支持输入输出,比如网络、存储和图形等,但这些都可以由它的宿主环境(网页环境)提供支持。
JAVAScript已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。
就像我们之前学习其他网络技术时要了解它的历史一样,JAVAScript也不例外,了解一个技术发源的历史,可以使我们更好的加以应用。
起源
在网页出现之后,各种网页浏览器如雨后春笋一般遍地出现。在1993年,伊利诺伊大学厄巴纳-尚佩恩分校的国家超级电脑应用中心(NCSA)发表了NCSA Mosaic,这是最早流行的图形网页浏览器。
浏览器从字符的浏览转到图文浏览是一个巨大的进步,在万维网发展的初期,图形浏览器可以很好的帮助大众去熟悉万维网。在一定意义上进行了万维网的推广。
在 NCSA Mosaic 出现一年以后,一家名为Mosaic Communications的公司在美国加州成立,并雇用了许多来自 NCSA Mosaic 的开发人员用来开发Mosaic Netscape,以期取代 NCSA Mosaic成为世界第一的网页浏览器。
很快,网页浏览器 Mosaic Netscape 的第一个版本 Mosaic Netscape0.9于1994年底发布。在短短四个月内,就击败了NCSA Mosaic,占据了四分之三的浏览器市场,并成为1990年代互联网的主要网页浏览器。
后来,为避免NCSA的商标所有权问题,该浏览器于同年更名为 Netscape Navigator,该公司更名为Netscape Communications。(网景通信公司)
网景公司,预想到网页会发展的更加生动。公司的创始人马克·安德森认为HTML需要一种胶水语言,让网页设计师和兼职程序员可以很容易地使用它来组装图片和插件之类的组件,并且代码可以直接编写在网页标记中。
1995年,网景招募了布兰登·艾克,目标是把Scheme语言嵌入到Netscape Navigator浏览器当中。但更早之前,网景已经跟昇阳合作使Netscape Navigator中支持Java,这使得网景内部产生激烈的争论。
争论的结果是网景决定发明一种与Java语法类似且搭配使用的辅助脚本语言,这个决策排除了采用现有语言的可能,例如Perl、Python、Tcl或Scheme。为了在其他竞争提案中捍卫JavaScript这个初始想法,公司需要有一个可以运作的原型。艾克在1995年5月仅花了十天时间就把原型设计出来了。
此语言最初被命名为 Mocha,1995年9月在Netscape Navigator 2.0的Beta版中改名为LiveScript,同年12月,Netscape Navigator 2.0 Beta 3中被重命名为JavaScript。
至于为什么叫它JavaScript,是因为当时的网景公司与昇阳电脑公司组成的开发联盟为了让这门语言搭上Java这个编程语言“热词”(蹭Java的热点),因此将其临时改名为JavaScript。
这也是日后,Java 与 JavaScript 之间傻傻分不清的源头。
JavaScript 的推广带给网景公司的不仅有成功还有烦恼。虽然在浏览器上大获成功,但与此同时微软也开发出了JScript,与网景公司同台竞技。
JScript也是一种JavaScript的语言形式,这两个JavaScript语言版本在浏览器端共存意味着语言标准化的缺失,标准的缺失意味着市场的混乱,因此在当时,有很多网页在两种浏览器上只能在其中一种浏览器上完美显示,而在另一种浏览器就会出现乱码之类的显示问题。
直到1996年11月,网景正式向ECMA(欧洲计算机制造商协会)提交语言标准。1997年6月,ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262。
尽管JavaScript是非程序员使用的脚本语言,但现在却是很多程序员掌握的语言之一,可以说是意料之外的发展了。
如果想学习更多科技知识,可以点击关注。
如果对文章中的内容有什么困惑的地方,可以在评论区提出自己的问题,学记同大家一起交流,解决各种问题,一起进步。
青年学记 陪伴着各位青年
作者:青年学记 一名不断进步的程序猿
一起学习 一起进步
走向自立
*请认真填写需求信息,我们会在24小时内与您取得联系。