JavaScript的前世今生

前言

在学习JavaScript之前,你可能已经听说过大名鼎鼎的Java。作为前端开发人员,你应该常常会听到人们谈论ES6。

它们是同一种语言吗?它们之间有着怎样的关系?下面从JavaScript的诞生开始,带你了解JavaScript的前世今生。

JavaScript的诞生

令人抓狂地网速

事件回到上个世纪90年代,人们普遍使用宽带拨号上网,那时的带宽是非常有限的。

想象以下,当你在表单中填入信息并提交,经过漫长的等待,服务器返回“你填入的信息有误”,而你仅仅可能是因为在填写时少填了某一项而已。

凡此种种,使得浏览器于服务器的每一次交互都是一次对人们耐心地考验。

Netscape的伟大尝试

于是当时的行业领袖Nescape(网景通信),为其旗下的浏览器 Netscape Navigator开发了一款以浏览器为运行环境的脚本语言,当时的只要作用就是做一些原来在服务器端做的表单验证工作。

最初这个语言被称为LiveScript,但在1995年发布的时候,为了蹭当时大火的Java的热度更名为JavaScript1.0(当时,Netscape与SUN有合作关系)。是的,你没有听错,蹭热度,所以JavaScript和Java没有任何关系!甚至这两种语言的差别还非常的大!

微软插足

JavaScript1.0取得了巨大成功,当时微软的IE浏览器是Netscape Navigator的主要市场竞争对手,微软不可能坐以待毙。于是他们在1996发布IE3的时候为其加如了自身的JavaScript实现,并命名为JScript。你可能没有听说过JScript,因为它只是微软为了避免与Netscape授权的问题起的名字,通常我们说到IE中的JavaScript指的就是JScript。

JavaScript的标准化

ECMAScript诞生

在1996年的浏览器领域,世纪上并存中两个不同版本的JavaScript:Netscape Navigator中的JavaScript和IE中的JScript。

两者非常相似,但在实现上又存在差异,这使得这两个版本的JavaScript是彼此不兼容的,也就是说针对IE写的JavaScript脚本到Netscape Navigator中可能是无法运行的。这给广大的开发者造成了极大困扰。于是JavaScript的标准化被提上日程。

1997年欧洲计算机制造协会以JavaScript1.1为蓝本发布了ECMAScript,从此ECMAScript作为浏览器端脚本语言的便准和规范,各大浏览器厂商都需要遵循ECMAScript开发自己的JavaScript实现。

JavaScript与ECMAScript的关系

ECMAScript作为浏览器端脚本语言的标准,无论是Netscape Navigator的JavaScript还是IE中的JScript都是对ECMAScript的实现。

ECMAScript只规定了一门语言的核心部分,它并没定义ECMAScript地运行环境,事实上,浏览器只是ECMAScript可能的运行环境之一。大名鼎鼎的Node就是ECMAScript的另一个运行环境。

由于ECMAScript并未定义这门语言和浏览器的关系,因此在实现JavaScript时需要做的远比ECMAScript规定的要多,一个完整的JavaScript包含以下部分:

  • ECMAScript
  • DOM
  • BOM

截取自JavaScript高级程序设计

简单地解释一下,DOM是文档对象模型,JavaScript可以通过它来操作页面地内容。Bom是浏览器对象模型,是用来控制浏览器地行为地如窗口,页面跳转等。

硝烟散去,多强割据

人们将上个世纪Netscape与微软在浏览器领域地竞争称为“浏览器大战”,而许多人可能并未听说过Netscape Navigator,很显然Netscape在竞争中落败了。然而IE真的并不比Netscape Navigator更优秀,它获胜地原因仅仅是因为---------它装机量大啊!

1998年Netscape因为市场上地失利被美国在线收购,同年Netscape向Mozilla项目开源了自己地Netscape Navigator源码,2007年美国在线宣布停止对Netscape Navigator地维护,Netscape Navigator正式结束了生命历程。

然而IE并没有垄断浏览器市场,因为新的竞争者出现了!目前浏览器领域主要有以下几种:

  • IE
  • Chrome(谷歌)
  • Safari(苹果)
  • Opera
  • FireFox(源于Moziila项目,Netscape Navigator的继承者)

你可能还听说过各种各样的其他浏览器如360浏览器等等,为什么它们没有出现在上面的列表中?那是因为这些浏览器大多都使用了上面其中一种浏览器的内核,可以认为它们只是上面某种浏览器的发行版而已。

尽管有着这么多的浏览器,但是因为它们都遵循了ECMAScript,因此如今的前端开发,兼容性实际上已经比浏览器大战的时代好很多了。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值