提起JavaScript,很多开发者应该都很熟悉了,因为这门语言在语言排行榜上常年霸榜;不仅如此,JavaScript
在web
开发中占据着举足轻重的地位,开发者众多,数量上已经快要超过Java
开发者了,开发社区非常活跃,越来越多的优秀开发框架涌现,比如Vue、React、Angular
等,深受企业和开发者们的信赖。
尽管如今的JavaScript
发展如此繁荣,但曾经的它可没这么顺利,命运坎坷用来形容一点都不为过。下面就来一起梳理梳理吧!如果小伙伴有更详细的补充,欢迎在评论区留下您的高见!
Mosaic浏览器首发
1990年底
,欧洲核能研究组织(CERN
)科学家 Tim Berners-Lee
,在互联网的基础上发明了万维网(World Wide Web),进而实现了在网上浏览网页文件;因为最开始时候,网页只能在操作系统的终端里浏览,只能使用命令行操作,网页也都是字符,并没有图片,更没有现在美观的样式和动画,不仅操作不方便,更没有使用体验和美观可言;万维网的出现,网页可以通过互联网来访问,使得这种情况得到大大改善。
1992 年
,Nombas
公司开发了一种脚本语言: Cmm(C-minus-minus
,中文翻译为C减减
,简称 Cmm
),尽管Cmm
在命名上和C++
有些类似,但和C++
却是完全不同的语言,Cmm
是一门可以替代宏操作的脚本语言,在语法上与 C
和 C ++
很高的相似度。
Nombas
公司为Cmm
脚本语言开发了运行环境: CEnvi
,通过下载CEnvi ,便能在网页中嵌入Cmm
脚本语言,Cmm
的出现使得客户端脚本语言有了雏形。尽管后来Nombas
把 Cmm
的名字改成了 ScriptEase
,也仅仅是改了名字,虽然名字叫ScriptEase
,但他和JavaScript
却没有任何关系,更不是JavaScript
语言的源头。
1992年底
,美国国家超级电脑应用中心(NCSA
)开发了史上第一个浏览器,叫做 Mosaic;Mosaic
浏览器不仅可以通过互联网访问网页,同时也可以显示图片,从此网页可以在图形界面的窗口浏览,浏览器时代正式开启。
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
的研究方向是函数式编程,他自身也有很强的函数式编程背景,所以对Java
和 OOP
并不感冒;
当初网景公司招聘他的目的也是研究将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都不喜欢他自己设计的这门语言:
"与其说我爱Javascript,不如说我恨它。它是C语言和Self语言yiyeqing的产物。十八世纪英国文学家约翰逊博士说得好:'它的优秀之 处并非原创,它的原创之处并不优秀。' (the part that is good is not original, and the part that is original is not good.)"—— Brendan Eich对JavaScript的评价
JavaScript 正式诞生
1995年12月4日
,网景公司与 Sun
公司联合发布了 JavaScript 语言,对外宣传 JavaScript
是 Java
的补充,属于轻量级的 Java
,专门用来操作网页,实现动态效果。
JavaScript 和 Java
尽管名字里都有Java
,但Java
和JavaScript
是两种不同的语言,这两种语言有一定的相似性,因为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
得益于 KDE
的 KHTML
和 KJS
,苹果公司也开发了自家的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
,一方面是由于商标的关系,因为Java
是 Sun
公司的商标,根据一份授权协议,只有 网景公司可以合法地使用 JavaScript
这个名字,且 JavaScript
已经被 网景公司注册为商标;另一方面是ECMA
也想体现ECMAScript
并不同于曾经的JavaScript
,ECMA
组织也不同于网景,这样就有利于保证这门语言的开放性和中立性。
完整的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.js, Node .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
应用,一套代码便能同时运行IOS
和Android
。
桌面软件开发
通过对Chromium
的移植,JavaScript
还能用于开发桌面应用,典型应用便是NW.js和Electron.js;都是使用HTML + CSS + JavaScript
便能开发出同时在Linux
,Mac OS X
和Windows
上可运行的桌面软件。
Deno
今天,Deno 1.0
正式发布,什么是Deno呢?Deno
是使用V8
引擎并内置于Rust
的JavaScript
和TypeScript
的新运行时,致力于在Web
浏览器之外执行JavaScript
和TypeScript
程序。
它和Node.js
的设计者是同一人:Ryan Dahl
,是Ryan Dahl
继Node.js
之后的又一大作;Deno
的设计特别注重安全,有着众多优点:
-
Deno
是以安全为前提的,除非明确启用,否则不会访问文件、网络或者环境; - 在设计之初便充分考虑到了
TypeScript
,所以对TypeScript
有着开箱即用的支持; - 只提供一个可执行文件;
- 内置了很实用的程序,如依赖检查器(
deno info
)和代码格式化器(deno fmt
); - 拥有一组经过审核的标准模块:
deno.land/std
,能和deno
一起运行;
虽然都支持V8
引擎,但Deno
却并不是Node.js
的分支,它甚至都不和Node(NPM)
兼容;Deno
是一个全新的JavaScript
和TypeScript
程序运行时,意在构建更加安全和高效的JavaScript
和TypeScript
程序,虽然目前和Node.js
并不兼容,Deno
却希望在将来能够使用Deno
来运行更多的Node
项目。
小结
纵观JavaScript
的发展,可谓感慨良多!曾经的JavaScript
是命运坎坷,还未出生就不受亲生父亲的待见,出生后更是常年被笼罩在Java
的阴影之下,甚至一度被认为是Java
的补充;被卷入浏览器大战,差点被遗弃。
但是好在它遇到了自己真正的归宿:ECMA组织
,不仅获得了重生,更是广受开发者青睐,随着Node.js
的出现,Vue.js、Angular.js、React.js蓬勃发展,JavaScript
有了更大的应用;Deno
的诞生,使得JavaScript
已经不仅限于Web
浏览器,又会掀起一场更大的互联网革命,让我们拭目以待。
完结,老夫虽不正经,但老夫一身的才华!关注我,获取更多编程科技知识。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。