出生就遇浏览器大战,亲爹还不爱,命运坎坷的JavaScript终于苦尽甘来

微信扫一扫,分享到朋友圈

出生就遇浏览器大战,亲爹还不爱,命运坎坷的JavaScript终于苦尽甘来

提起 JavaScript ,很多开发者应该都很熟悉了,因为这门语言在语言排行榜上常年霸榜;不仅如此, JavaScriptweb 开发中占据着举足轻重的地位,开发者众多,数量上已经快要超过 Java 开发者了,开发社区非常活跃,越来越多的优秀开发框架涌现,比如 Vue、React、Angular 等,深受企业和开发者们的信赖。

尽管如今的 JavaScript 发展如此繁荣,但曾经的它可没这么顺利,命运坎坷用来形容一点都不为过。下面就来一起梳理梳理吧!如果小伙伴有更详细的补充,欢迎在评论区留下您的高见!

Mosaic浏览器首发

1990年底 ,欧洲核能研究组织( CERN )科学家 Tim Berners-Lee ,在互联网的基础上发明了 万维网(World Wide Web) ,进而实现了在网上浏览网页文件;因为最开始时候,网页只能在操作系统的终端里浏览,只能使用命令行操作,网页也都是字符,并没有图片,更没有现在美观的样式和动画,不仅操作不方便,更没有使用体验和美观可言;万维网的出现,网页可以通过互联网来访问,使得这种情况得到大大改善。

1992 年Nombas 公司开发了一种脚本语言: CmmC-minus-minus ,中文翻译为 C减减 ,简称 Cmm ),尽管 Cmm 在命名上和 C++ 有些类似,但和 C++ 却是完全不同的语言, Cmm 是一门可以替代宏操作的脚本语言,在语法上与 CC ++ 很高的相似度。

Nombas 公司为 Cmm 脚本语言开发了运行环境: CEnvi ,通过下载 CEnvi ,便能在网页中嵌入 Cmm 脚本语言, Cmm 的出现使得客户端脚本语言有了雏形。尽管后来 NombasCmm 的名字改成了 ScriptEase ,也仅仅是改了名字,虽然名字叫 ScriptEase ,但他和 JavaScript 却没有任何关系,更不是 JavaScript 语言的源头。

1992年底 ,美国国家超级电脑应用中心( NCSA )开发了史上第一个浏览器,叫做 MosaicMosaic 浏览器不仅可以通过互联网访问网页,同时也可以显示图片,从此网页可以在图形界面的窗口浏览,浏览器时代正式开启。

Netscape Navigator 时代

1994年10月Mosaic 浏览器的核心开发成员 马克·安德森(Marc Andreessen)吉姆·克拉克(Jim.H.Clark) 共同创立了 Mosaic 公司,目的就是基于 Mosaic 继续开发浏览器。

但由于 Mosaic 的商标被伊利诺伊大学拥有,并且 Mosaic 浏览器的技术已经被转让给了 Spyglass 公司,所以新成立的 Mosaic 公司不久后改名为 Netscape (中文译为 网景 ),并重新编写代码实现了一个新的浏览器,这个新浏览器被取名为 Netscape Navigator ,即“导航者”。而它的对内称呼为 Mozilla ,意为 Mosaic 杀手。

1994年12月Navigator 发布了 1.0 版,一经发布就取得了巨大成功,在短短的 4 个月里就占据了 90% 的浏览器市场,短期甚至内成为了默认浏览器;同时, Nombas 也发布了 CEnvi 的首个可用版本。

上网慢且贵

由于 Netscape Navigator 的成功,更多的应用开始出现在互联网上,让网上冲浪越来越流行;但此时,大部分因特网用户还仅仅通过 28.8 kbit/s 的调制解调器连接到网络,网速很慢而且上网费很贵,所以当时用户的上网体验不仅不好,而且还很昂贵;

使用体验差

有时候仅仅是简单的表单数据验证,就要与服务器进行多次的往返交互。设想一下,用户填完一个表单,点击提交按钮,等待了 30 秒的处理后,看到的却是一条您的用户名忘记填写的提示,如果表单更大、更复杂,交互过程将会更加漫长,对于用户来说,这个过程太痛苦了。

客户端语言提上日程

网景公司很快也发现了,如果用户忘记填写“用户名”,就点了“发送”按钮,到服务器再发现这一点就太晚了,最好能在表单数据与服务端交互前,就能检测出“用户名”未填写,进而提示用户“请填写用户名”;

更是敏感的意识到了, 此时的Navigator 浏览器需要一种可以嵌入网页的脚本语言,这种语言运行在浏览器端,可以控制浏览器行为,并且能和服务端交互

于是网景公司便决定开发一门可以 Navigator 浏览器中运行的、轻量级的客户端脚本语言,如果此举成功,那么一些普通的用户操作便能放在客户端来执行,进而能大大改善用户操作体验,提高网络应用的运行效率。

互联网刮起了Java 东风

但是又一个问题摆在了网景公司面前,这是一个选择题,有两个可选项:

Perl、Python、Tcl、Scheme

两个选择各有利弊。

第一个选择,使用现有的编程语言:

  • 可以充分利用现有代码库和程序员资源,入门门槛较低;
  • 借助现有语言的市场,可以更容易推广开来;
  • 可能不能完美的实现当下的需求;

第二个选择,重新开发新语言:

  • 能够完美实现当前的使用需求,
  • 需要重新设计语言规范,吸引开发者使用,这需要时间和成本;

到底采用哪一个选择,网景公司内部争执不下,管理层一时也难以下定决心。就在这时, Java 异军突起,这种可以 “一次编写,到处运行” ( Write Once, Run Anywhere ) 的语言一经发布就大火,广受开发者和企业的青睐。

网景公司管理层也动了心,决定与 Sun 公司合作,不仅允许 Java 程序以 applet (小程序)的形式,直接在浏览器中运行;甚至还考虑直接将 Java 作为脚本语言嵌入网页,但由于 Java 语言过于庞大,并不适合嵌入浏览器中,才不得不放弃。

1995年5月 ,网景公司做出决策,未来的网页客户端脚本语言必须”看上去 与Java足够相似 “,使得 Java 程序员能够快速上手,功能不需要太强,语法简单,容易学习,即使是非专业的网页作者也能快速学会;这个决策一出,其实就已经将第一个选择排除了,选择了开发一门新语言。

Brendan Eich 出场

1995年 ,网景公司找到了公司程序员 Brendan Eich ,任命其为这门新的客户端脚本语言的设计者;但 Brendan Eich 的研究方向是函数式编程,他自身也有很强的函数式编程背景,所以对 JavaOOP 并不感冒;

当初网景公司招聘他的目的也是研究 将Scheme语言作为网页客户端脚本语言的可能性Brendan Eich 本人原本以为进入新公司后,将会是研究 Scheme 语言,可却现在接到这样的任务,自然是不情愿的。

Scheme语言是函数式语言鼻祖 Lisp 语言的一种方言,另外一种比较流行的 Lisp 方言是 Common Lisp

1995年5月Brendan Eich 只用了 10 天,就设计完成了这种语言的第一版;它是一个大杂烩,语法有多个来源,当时的设计思路是:

  • 基本语法:借鉴 C 语言和 Java 语言;
  • 数据结构:借鉴 Java 语言,包括将值分成原始值和对象两大类;
  • 函数的用法:借鉴 Scheme 语言和 Awk 语言,引入闭包,把函数作为语言的核心;
  • 原型继承模型:借鉴 Self 语言( Smalltalk 的一种变种);
  • 正则表达式:借鉴 Perl 语言;
  • 字符串和数组处理:借鉴 Python 语言;

网景公司的这种浏览器脚本语言,最初名字叫做 Mocha,1995年9月改为 LiveScript;

但由于网景公司的整个管理层,都是认准了Java语言的,更想借一下Java的东风,所以同年12月,网景公司与 Sun 公司达成协议,Sun 公司授权网景公司将这门新的语言命名为 JavaScript,改名后的JavaScript更是被网景公司和Sun两家公司联手推出,官方的宣传 :JavaScript 是 Java 的补充,属于轻量级的 Java;所以JavaScript = Java + Script这样的宣传更不是空穴来风。

借此机会,网景公司便将JavaScript申请成为了商标。 这样一来,网景公司可以借助 Java 语言的声势推广JavaScript,而 Sun 公司则将自己的影响力扩展到了浏览器。

仅用10天就设计出的语言,其表现可想而知。在其推出后的很长一段时间内,程序运行都有着各式各样的问题。就连JavaScript的设计者本人Brendan Eich都不喜欢他自己设计的这门语言:

—— Brendan Eich对JavaScript的评价

JavaScript 正式诞生

1995年12月4日 ,网景公司与 Sun 公司联合发布了 JavaScript 语言 ,对外宣传 JavaScriptJava 的补充,属于轻量级的 Java ,专门用来操作网页,实现动态效果。

JavaScript 和 Java

尽管名字里都有 Java ,但 JavaJavaScript 是两种不同的语言,这两种语言有一定的相似性,因为 JavaScript 的基本语法在设计过程中是借鉴了 Java 的。

  • Java 是强类型的静态语言,是一门 纯面向对象的语言,以类和对象为核心 ,在 Java 中没有函数一说,有的只是方法。
  • JavaScript 是弱类型的动态语言,在 JavaScript 中,语言的函数是一种独立的数据类型,且 JavaScript是以函数为核心的 ,采用基于原型对象( prototype )的继承链。

另外, Java 程序要经过编译才能运行,而 JavaScript 语言的运行时解释器已经集成到浏览器中,所以 JavaScript 可在浏览器直接运行。

1996年3月Navigator 2.0 浏览器正式内置了 JavaScript 脚本语言。

同年, Netscape Navigator 3.0 发布,此版本有分为“ Standard Edition ”和“ Gold Edition ”两个版本,两个版本区别在于,后者具备邮件软件和所见即所得的网页编辑程式。

浏览器大战

Netscape 春风得意

1995年 开始,万维网慢慢开始被大众认知,受到越来越多的关注。 能够显示图形的Mosaic 浏览器俘获了不少用户的芳心; Netscape Navigator 更是一经发布就占据了超过 90% 的浏览器市场,一度变成最受欢迎的网络浏览器。这时的 Netscape 可谓是春风得意,但是好景不长

IE 浏览器加入

由于微软对互联网发展的误判,轻视了浏览器的发展,使得 Netscape Navigator 有机会发展壮大,但后知后觉的微软也看到了浏览器市场发展的前景,开始重视起来,并从 Spyglass 公司处获得了 Mosaic 的授权,开发出了自家的浏览器: IE 浏览器1.0 ,几个月后, IE 浏览器2.0 发布,并免费向用户提供;而此时的 Netscape Navigator 是收费的。

大战一触即发

1995年Netscape Navigator 2.0 发布后,浏览器市场都以网景的 JavaScript 为标准;微软公司虽然有 IE 浏览器 ,但却没有 JavaScript ,所以 IE浏览器Netscape Navigator 2.0 面前不堪一击。

于是,微软便找上了网景,想要收购网景,但春风得意的网景公司自然是不会同意的;微软自然也不会放弃,更不会放任网景做大,紧接着便是全力投入到了IE浏览器新版本的开发中。

1996年8月 ,微软的 IE 3.0 发布,同时,微软也开发出了自己的客户端脚本语言: JScript (这个名字怎么看怎么像 JavaScript 的缩写),在对自家的IE浏览器的宣传上,微软也更是不遗余力;

1997年 IE4.0 发布, IE4.0 有着更好的 W3C 标准的实现,更是被捆绑在了 Windows 中,随 Windows 系统一同发布;正是这一举措, IE 浏览器的市场份额开始暴增;

到了 1999年 ,微软的 IE浏览器 已经占据了绝大部分浏览器市场,而此时网景公司已被美国在线收购,留下 Netscape Navigator 在苟延残喘。

至此,第一次浏览器大战以 IE 大获全胜而告终。

火狐浏览器涅槃重生

1998年 ,网景深知浏览器大战中的 Netscape Navigator 败局已定,面对着无法挽回的市场份额,网景公司做了一个重大决定: 将Netscape Navigator 5.0开源

同年,网景公司成立非营利性组织: Mozilla 基金会 ,主要负责 Netscape Navigator 的开源和维护; Mozilla 基金会独立于网景公司运行,所以就算后来网景公司虽被美国在线收购, Mozilla 基金会却能一直独立运作至今。

Mozilla 基金会的手中, Netscape Navigator 开放了源代码,分两个分支:

  • 一个是 Netscape Navigator ,相继推出了 Netscape Navigator6、7、8
  • 另一个便是 Firefox ,一直维护至今;

无论是开源后的 Netscape Navigator ,还是 Firefox ,都是基于 Gecko 渲染引擎来构建的。关于这段故事,还有一部纪录片,叫 《奔腾的代码》 ,主要讲述的就是 Netscape Navigator 的开源和 Firefox (火狐浏览器)的诞生的故事,想要详细了解的同好可以去搜来看看。

开源后的 Firefox (火狐浏览器)重新开发了渲染引擎 Gecko 并且积极拥抱 JavaScript 标准,无论是在性能,还是用户体验上,都有了极大的提升;不仅是在 Windows 系统,在 Linux 系统、 Mac 系统,也都有着不俗的表现,甚至在 Linux 系统中,比 Chrome 浏览器的表现都要好。

优异的性能,再加上在 Mozilla 基金会的良好运作下,火狐浏览器逐渐了获得用户认可,原本被 IE 浏览器 占据的市场逐渐被火狐浏览器夺回。

反观 IE浏览器 ,并没有积极适配 EcmaScript ,始终沉浸在自己的世界中,玩着只有自己的游戏,跟标准越走越远,渐渐被用户抛弃,原本的用户市场也被逐渐被涅槃后的火狐浏览器所取代。

纵观浏览器发展历史,不得不说,历史总是惊人的相似。

WebKit

得益于 KDEKHTMLKJS ,苹果公司也开发了自家的 JavaScript 引擎: Webkit 渲染引擎,苹果公司不仅将 Webkit 渲染引擎开源免费 ,而且还基于 Webkit 渲染引擎开发了 Safari 浏览器

V8

谷歌于 2008年12月 发布了 Chrome 浏览器, 与 Safari 浏览器 使用相同的 WebKit 渲染引擎和一个名为 V8 引擎。 V8 使用 C++ 开发,相比其它的 JavaScript 引擎转换成字节码或解释执行, V8 引擎会将 JavaScript 程序其编译成原生机器码,所以 JavaScript 程序在 V8 引擎下的运行速度足以媲美二进制程序。

不久之后,谷歌便以 Chromium 项目开放了 Chrome 浏览器的源码;新功能会率先在 Chromium 上实现,稳定后才会应用在 Chrome 上。

JavaScript 标准化

三个巨头三足鼎立

在微软进入浏览器市场,发布了 JScript 之后,有 3 种不同的 JavaScript 实现同时存在,分别是:

Netscape Navigator 3中的 JavaScript
IE 中的 JScript
CEnvi 中的 ScriptEase

三个巨头三足鼎立,形成了三分天下之势,网景公司也面临丧失浏览器脚本语言的主导权的局面;而由此导致的版本不兼容问题日益加剧,当时的一个网页程序往往要对三个平台提供不同的实现,开发和维护的成本都越来越高;

ECMA出手拯救JavaScript

1996年11月 ,网景公司面对着逐渐被微软蚕食的浏览器市场,于是决定将 JavaScript 提交给国际标准化组织 ECMA(European Computer Manufacturers Association) ,希望 JavaScript 能够成为国际标准,以此抵抗微软。

ECMA 接受了这个请求,并决定由 39号技术委员会Technical Committee 39 )负责制定和审核这个标准,委员会成员由业内各大公司派出的工程师组成,该委员会定期开会,所有的邮件讨论和会议记录,都是公开的。

1997年7月ECMA 组织发布 262 号标准文件(即: ECMA-262 )的第一版,规定了浏览器脚本语言 JavaScript 的标准,并该语言标准取名为 ECMAScript

之所以不叫 JavaScript ,一方面是由于商标的关系,因为 JavaSun 公司的商标,根据一份授权协议,只有 网景公司可以合法地使用 JavaScript 这个名字,且 JavaScript 已经被 网景公司注册为商标;另一方面是 ECMA 也想体现 ECMAScript 并不同于曾经的 JavaScriptECMA 组织也不同于网景,这样就有利于保证这门语言的开放性和中立性。

完整的JavaScript实现

至此,完整的 JavaScript 实现包含三个部分: ECMAScript ,文档对象模型( DOM ),浏览器对象模型( BOM )。 符合 ECMA-262 3rd Edition 标准的实现有:

Microsoft公司的JScript
Mozilla的JavaScript-C,后改名为SpiderMonkey
Mozilla的Rhino
Digital Mars公司的DMDScript
Google公司的V8
WebKit

需要注意的是, ECMAScript 只用来标准化 JavaScript 语言的基本语法,与部署环境相关的标准都由其他标准规定,比如 DOM 的标准就是由 W3C 组织制定的。

ECMA-262 标准后来也获得国际标准化组织 ISO 的批准,并以标准号 ISO-16262 命名。

ECMAScript 步入正轨

1997年7月ECMAScript 1.0 发布,这个版本做了些小改动:支持 Unicode 标准,对象与平台无关等,其他的特性与网景发布的 JavaScript1.1 并无二致;

1998年6月ECMAScript 2.0 发布,这个版本主要做的是细节优化,没有新功能发布;

1999年12月ECMAScript 3.0 版发布,这个版本对 JavaScript 标准做了大量的修改。修复了包括字符串处理、错误定义和数值输出等一系列问题。新增了对正则表达式、新控制语句、 try-catch 异常处理的支持。此时的 ECMAScript 才能算是一门真正的编程语言。

2007年10月ECMAScript 4.0版草案 发布,草案的标准跟 第3版 比起来,几乎是定义了一门新语言;因为草案不仅包含了强类型变量、新的数据结构和继承,还添加了 JSON 对象、继承的方法和高级属性定义,以及严格模式。由于改动过大,所以 4.0 草案发布后,遭到了 Yahoo、Microsoft、Google 等公司的反对。

2008年7月 ,由于各方争执不下, ECMAScript 4.0 的开发被终止, ECMAScript 4.0 中改动较少的一部分被拿出来,作为 ECMAScript 3.1 开发,项目代号为 Harmony ,而其他的改动较大的功能将会逐步推出,会后不久, ECMAScript 3.1 改名为 ECMAScript 5

2009年12月ECMAScript 5.0 版 正式发布; Harmony 项目则一分为二,一些可行性较高的功能优先开发,后来成了 ECMAScript 6 ;而另一些不太成熟的设想,则会考虑放在 ECMAScript 7 中;

2011年6月ECMAScript 5.1 版发布,并且成为 ISO 国际标准( ISO/IEC 16262:2011 );

2012年底 ,所有的主流浏览器全面支持 ECMAScript 5.1

2015年6月ECMAScript 6 正式发布,并且更名为“ ECMAScript 2015 ”。同时, TC39 委员会也计划以后每年发布一个 ECMAScript 的版本; 2016 年发布的版本,称为“ ECMAScript 2016 ”, 2017 年发布“ ECMAScript 2017 ”,以后的版本以此类推。

AJAX

Ajax这个词首先出现在 《Ajax: A New Approach to Web Applications》 一文中,该文的作者是 Jesse James Garrett ,在该文中,将 Ajax 定义为了: Asynchronous JavaScrpt + XML 的组合,代表并不是单一的技术,而是多种技术的组合。

该文的迅速流传使得 Ajax 被更多开发者认知、认可,并在 1998年 得到了广泛应用。 Ajax 允许客户端脚本发送 HTTP 请求动态加载局部的网页内容,实现网页的异步加载,也就意味着不必因为局部网页内容的修改而加载整个网页,从而能够带来更加友好的网页体验。

Ajax 的第一个组件由 Outlook Web Access 小组写成,被用于微软 Exchange Server ,因此 Outlook Web Access 成了第一个应用了 Ajax 技术的商业应用程序。

2005年Google 在它的很多应用中都使用了 Ajax ,如 Google讨论组、Google地图、Google搜索建议、Gmail 等。

自此以后, Ajax 迅速窜红,进而引发了一场互联网革命,使得基于 Ajax 的综合框架和 JS库 的急剧增加,越来越多的优秀框架出现,不仅 Web 应用的构建变得更加容易,也改进了 JavaScript 编程实践,对 JavaScript 的发展推进做出了巨大的贡献。

JQuery

jQuery是一个快速、简洁的 JavaScript 框架,于 2006年8月 发布第一个稳定版本,是继 Prototype 之后又一个优秀的 JavaScript 代码库。它封装 JavaScript 常用的功能代码,并提供了一种更加简便的操作模式,使得 HTML 文档操作、事件处理、动画设计和 Ajax 交互变得更加容易。

此外, jQuery 具有高效灵活的 CSS 选择器,并且可对 CSS 选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。 jQuery 兼容各种主流浏览器,如 IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+ 等。

Node.js

就在 Chromium 发布半年后, Ryan Dahl 创建了一个基于 Chrome V8 引擎的 JavaScript 开发平台: Node.jsNode .js 提供了一个可以 JavaScript 运行在服务端的运行环境,使得 JavaScript 程序可以运行在服务端;可以说, Node.js 的出现让 JavaScript 提升了一个层次,让前端程序员不再局限于客户端开发,也让全栈开发成为了可能。

Node.js 发布的还有包管理工具: npm ,通过 npm 可以:

NPM
NPM
NPM

三大框架

由于 Node.js 的成功,在 npm 管理工具的带动下,一大批优秀的 JavaScript 开发框架开始涌现,其中有代表性的便是 Vue.js、Angular.js、React.js ,这些框架语法简单、性能优越、文档丰富,使用这些框架能够快速搭建前端应用,而且,由于活跃的开发社区,这些框架都有着丰富的系统组件,能够完成一切的业务需求。

Vue.js是一套用于构建用户界面的渐进式 JavaScript 框架,自底向上增量开发的设计,专注于视图层,非常容易学习,也非常容易与其它库或已有项目整合,作者是 尤雨溪 ;作者和框架无论在国内、国外都有着不小的知名度;

Angular.js是一套 Google 推出的 JavaScript 开发框架,诞生于 2009年 ,该框架有着 MVVM 、模块化、自动化双向数据绑定、语义化标签、依赖注入等诸多核心特性; Angular 的理念是 组建视图(UI)和写软件逻辑可同时进行,将 DOM 操作和应用逻辑解耦,将 测试开发 同等看待,将客户端和服务器端解耦,在整个开发流程里都引导着开发者:从设计 UI ,到编写业务逻辑,再到测试。

React.js是 Facebook 推出的 JavaScript 框架,起源于 Facebook 的内部项目,由于 React 的设计思想极其独特,和 Vue 一样, React 不是一个完整的 MVC 框架,很多人都认为是 MVC 中的 V(View) 。此外, React Native 框架可用于开发跨平台的 App 应用,一套代码便能同时运行 IOSAndroid

桌面软件开发

通过对 Chromium 的移植, JavaScript 还能用于开发桌面应用,典型应用便是 NW.js和Electron.js ;都是使用 HTML + CSS + JavaScript 便能开发出同时在 LinuxMac OS XWindows 上可运行的桌面软件。

Deno

今天, Deno 1.0 正式发布,什么是 Deno 呢? Deno 是使用 V8 引擎并内置于 RustJavaScriptTypeScript 的新运行时,致力于在 Web 浏览器之外执行 JavaScriptTypeScript 程序。

它和 Node.js 的设计者是同一人: Ryan Dahl ,是 Ryan DahlNode.js 之后的又一大作; Deno 的设计特别注重安全,有着众多优点:

  1. Deno 是以安全为前提的,除非明确启用,否则不会访问文件、网络或者环境;
  2. 在设计之初便充分考虑到了 TypeScript ,所以对 TypeScript 有着开箱即用的支持;
  3. 只提供一个可执行文件;
  4. 内置了很实用的程序,如依赖检查器( deno info )和代码格式化器( deno fmt );
  5. 拥有一组经过审核的标准模块: deno.land/std ,能和 deno 一起运行;

虽然都支持 V8 引擎,但 Deno 却并不是 Node.js 的分支,它甚至都不和 Node(NPM) 兼容; Deno 是一个全新的 JavaScriptTypeScript 程序运行时,意在构建更加安全和高效的 JavaScriptTypeScript 程序,虽然目前和 Node.js 并不兼容, Deno 却希望在将来能够使用 Deno 来运行更多的 Node 项目。

小结

纵观 JavaScript 的发展,可谓感慨良多!曾经的 JavaScript 是命运坎坷,还未出生就不受亲生父亲的待见,出生后更是常年被笼罩在 Java 的阴影之下,甚至一度被认为是 Java 的补充;被卷入浏览器大战,差点被遗弃。

但是好在它遇到了自己真正的归宿: ECMA组织 ,不仅获得了重生,更是广受开发者青睐,随着 Node.js 的出现, Vue.js、Angular.js、React.js 蓬勃发展, JavaScript 有了更大的应用; Deno 的诞生,使得 JavaScript 已经不仅限于 Web 浏览器,又会掀起一场更大的互联网革命,让我们拭目以待。

完结,老夫虽不正经,但老夫一身的才华!关注我,获取更多编程科技知识。

拼多多百亿补贴再发车:英特尔 CPU 最低 299 元,小米 Air2S 仅 199 元

上一篇

实地地产集团启动IPO 率先推出“智慧人居生态…

下一篇

你也可能喜欢

出生就遇浏览器大战,亲爹还不爱,命运坎坷的JavaScript终于苦尽甘来

长按储存图像,分享给朋友