javascript 诞生

javascript 诞生

javascript自1995年诞生以来,经历20多年发展,如今已成为全世界最受欢迎的前10种语言之一,今天我们就来聊一聊它的历史。

javascript是怎样诞生的?

在javscript诞生以前,web开发中一些简单的验证,例如是否输入为空等都是在后端进行验证。后端验证既耗时又费力,为了能解决这个问题,Netscape着手开发了javascript。其实,刚开始的需求就是为了解决客户端验证的问题。如今,客户端验证已经是web程序员的必备技能,但在90年代,能进行客户端验证绝对是一项很牛的技术,因为当时上网的网速是非常慢的,如果每次都把验证丢给服务器,让用户等待返回结果,最后只是告诉用户某某输入框不能为空,我想任何人的心态肯定都是崩溃的,长此以往肯定会流失大量用户。

javascript的出现从某种程度上解决了这一问题,自此,为了争夺用户,各大浏览器支持javascript几乎已成定局。如今javascript的作用远不止如此,特别是NodeJS的出现,让其有了作为一门后端语言的能力,ES6的逐渐普及出现也极大增强了javascript的能力。

javascript简史

  • 诞生

    1995年,Netscape公司准备推出Netscape Navigator 2.0并希望能搭载LiveScript,当时工作于Netscape的程序员Brendan Eich负责此项工作。Netscape Navigator 2.0在推出之际,为了赶Java的热度,将LiveScript更名为了javascript。但其实javascript和java没有任何关系,除了名字有点像。

    看看第一个支持javascript的浏览器——Netscape Navigator 2.0长什么样

    javascript 诞生_第1张图片

    图片出自这里webdesignmuseum,有兴趣的可以点开看,不过加载很慢

  • 浏览器之争

    这里不得不说一说微软和Netscape的商业竞争,我们知道微软是做操作系统的,微软的windows95系统几乎占据了全球85%的份额,而Netscape是做浏览器的,IE 1.0-3.0的技术和性能都无法与其开发的网景浏览器相抗衡。

    下面我们来看看微软是怎么一步步干掉Netscape的:

    可以这么说,1995年,微软控制了操作系统,而Netscape控制了用户访问Internet的窗口。比尔盖茨意识到微软在浏览器方面的落后之后,开始和Netscape交涉。最初,微软想收购Netscape公司,被拒。被拒之后,准备和Netscape合作,但微软的条件很苛刻,让Netscape进退两难,合作,意味着利益受损,不合作意味着和微软竞争。也许是Netscape认为自己在浏览器上的技术和市场都占有优势,没有答应微软合作,决定与之抗衡。最后的结果我们都知道了,微软的一系列的操作彻底击垮了网景。

    微软将IE与windows系统捆绑销售且直接免费供给购买windows的用户使用,直到现在也是这么干。要知道Netscape浏览器是收费的,古往今来,免费的东西似乎都很香。这样即使IE再难用,用户也无法拒绝。直到1997年微软推出IE4.0时,其技术与Netscape已经不分上下了,虽然Netscape也已经免费,但这时用户不再下载使用Netscape了,不知道大家有没有这种心理,喜欢使用原装自带的东西,我相信当时的用户应该也有这种心理,就这样Netscape逐步退出web浏览器的江湖,最终走向失败,消失在了web浏览器的世界。至此微软彻底从操作系统至浏览器占有了用户。

    不得不说,虽然这种商业竞争导致了一些问题比如标准不一致等,但也正是这种竞争,加快了javascript的发展。

    看看Internat Explorer 2.0
    javascript 诞生_第2张图片

    图片出自这里webdesignmuseum

  • 标准化

    1997年,由来自 Netscape、Sun、微软、Borland和其他一些对脚本编程感兴趣的公司的程序员组成的TC39编写了ECMA-262,该标准定义了名为ECMAScript(ek-ma-script)的全新脚本语言的标准。

    1998年,国际标准化组织及国际电工委员会(ISO/IEC)也采纳ECMAScript作为标准(ISO/IEC-16262)。从此,ECMAScript就成为了各大浏览器厂商实现JavaScript的基础。

ECMA-262、ECMAScript、Javascript有啥关系?

这些术语非常像,非常容易搞混,知道是啥意思就行,不必深究。

  • ECMA-262:由ECMA发布的标准,它定义了这门语言的以下组成部分:

    • 语法
    • 类型
    • 语句
    • 关键字
    • 保留字
    • 操作符
    • 对象
  • ECMAScript: 是在ECMA-262之下定义的标准,它就是对ECMA-262定义的标准的一个具体详细的描述。我们常说的ES5,ES6就是ECMAScript 第5版,ECMAScript 第6版。ECMAScript最新文档

  • javascript: 上面说了,ECMAScript是对ECMA-262具体的描述,而javascript则具体实现了ECMAScript,Adobe ActionScript同样也实现了ECMAScript,如果你愿意你也可以实现ECMAScript。
    javascript 诞生_第3张图片

TC39过程

TC39全称为ECMA技术委员会39(ECMA Technical Committee 39),这个委员会是推动javascript发展的关键机构。一些新特性是否能被采用、js的发展都与这个机构息息相关。这个机构的成员大都来自像Apple,Facebook,Google等IT巨头。

上面我们说到的ECMAScript,其实就是由TC39委员会编写的。

哪些新特性被ECMAScript采纳并加入标准不是谁头脑一热决定的,而是有一个详细且漫长的流程的,这个流程就是TC39过程(TC39 process),这个过程由5个阶段:Stage 0 - Stage 4。下面简单说说这5个阶段。

  • stage0: strawperson

    最初阶段,简单说就是任何TC39成员都可以提出想法和意见给TC39机构。

  • stage1:proposal

    正式提案阶段,此阶段必须给出你的提案的具体实现方案,得有例子,API调用方法等等。

  • stage2:draft

    草案阶段,这个阶段你的提案必须提供语法的正式的描述,越详细越好,为将来成为标准做准备。

  • stage3: candidate

    到这个阶段提案基本完成,现在需要实施者和用户的反馈来进一步推进。

  • stage4: finished

    最后一个阶段,基本已经完成,该提案已准备列入标准,但需要通过测试 Test 262,这个测试是由javascript编写的单元测试,之后还有编辑签字什么的。

感兴趣的可以看看TC39 process,英语不好,就不逐句翻译了

总结

  1. javascript于1995年由Netscape公司的Brendan Eich开发
  2. 浏览器之争中,微软打败了Netscape公司
  3. ECMA组织定义了ECMA-262标准,ECMAScript具体描述了这个标准,Javascript是对这个标准的具体实现
  4. javascript是由ECMAScript,DOM,BOM三部分组成,核心部分是ECMAScript
  5. TC39 Process分为5个阶段:stage0(strawperson)-stage1(proposal)-stage2(draft)-stage3(candidate)-stage4(finished)

参考:

w3school:https://www.w3school.com.cn

ecma262: https://tc39.es/ecma262/

TC39 process:https://tc39.es/process-document/

写作时间:2020-05-23

你可能感兴趣的:(javascript)