1996-2017,JavaScript 简史

1,044 阅读22分钟
原文链接: www.zcfy.cc

介绍

在2017年,JavaScript的开发可以让新手使用语言,让许多老手瘫痪并且不确定从哪里开始或者选择哪条路径才是正确的。人们经常深究最新的和最伟大的,没有真正了解为什么它是如此伟大(或者为什么它可能不是如此)。了解JavaScript的历史可以帮助认识它现在的状态。

我们一起讨论这些问题。所有的编程,用任何语言都可以解决问题。这是正确的在宏观层面上(“我们如何向用户提供解决方案?”),一个是中观层面(“我们如何尽可能快而有效率的对这些数据进行排序?”),另一个是在微观层面上(“我如何遍历这个数组?”)。编程语言是建立在给用户工具去解决这些问题。对于Web或者其他,JavaScript的代码和其他可以用来编写程序的代码并没有什么区别。刻薄的人也会很乐意让你知道JavaScript introduces有多少问题,我不否认有很多,但其它任何语言也是如此。我从来没见过一个经验丰富的程序员,不定期诅咒一些很久之前标准委员会做出的决定,这些理由可能不再有任何意义。

本文并不打算深入和全面地研究JavaScript解决的所有问题,更不用说如何使用它来解决这个问题了。更确切地说,它是对语言本身和它用来解决Web上日益复杂的问题的历史的一个广泛的概述。它试图给大图片回答类似我们在哪儿为什么我们在这里的问题,我不得不保持相当高的水平;一个完整的语言历史可以写一整本书。这就是我所说的简短历史。

如果不知道基本原理,就很难理解诸如“框架是什么”和“为什么jQuery是解决问题A的好方法,而不是问题B呢?”等常见问题的答案。知道这些问题的答案可以让开发者做出更明智选择,从而节省大量的时间、精力和精神。

我将文章分为四个基本的时间段。早期时代,包括第一个十年期间,新生的语言是在浏览器使用;jquery时期,jQuery等框架开始出现针对JavaScript开发的一些基本和极其令人沮丧的问题;单页App时期,开发者开始接触jQuery的局限,像Backbone和AngularJS框架崭露头角;现在时期,我们见过智能技术,紧凑的写框架,注重速度,易用性和条块分割的应用开发,以及回归“Vanilla”的JavaScript。对于每一个时期,将提供一些关于Web开发的背景,谈论人们遇到的问题,并解释该时代的技术如何解决这些问题。

但是我们已经超越了我们自己。让我们带一台时光机回到恐龙在地球漫游的日子,一个特别的浏览器主宰着:网景航海家。


# #早期时代

时间表: 大约1996 - 2004

问题: 基于DOM操作、用户交互

创新: JavaScript 本身, XHR 和 AJAX

主流浏览器: Netscape Navigator,微软Internet Explorer

JavaScript由Brendan Eich在十天内创建,接着一个雇员Mozilla 被雇佣把Scheme编程语言楔入网景浏览器。这个计划被抛弃取代了一种其语法更类似于java的语言。Eich创造了一个语言LiveScript,可以直接嵌入到HTML文档解析的浏览器,不需要编译。1995年9月LiveScript首次被运用在Netscape Navigator ,并在1995年12月更名为JavaScript软件第三测试版。[ [ 1 ] ](# foot1)

除了名字,JavaScript共享了Java的共同点,除了C语言, indentation-indifferent,面向对象的语言,这些实际上有相当多的共同点,但不包含与java基础代码共享,并且重要核心方面的语言是完全不同的。决定命名它为JavaScript是一项市场行为,并且导致了,招聘人员联系21年接触过JavaScript的开发者,气喘吁吁地开始庆祝所有的令人兴奋的java编程机会。感谢 Mozilla!

Netscape 3,尤其Netscape 4是他们一天中的 Tyrannosaurus Rexes,在他们庞大的下颚力量之间压倒所有的挑战者。

在最初的几年中,JavaScript在与微软的各种脚本语言的战斗,这是一个重要的因素是在任何给定的时间网站才可能在Netscape或Internet Explorer(然后在其第三版)正常工作,但都没有。

不要误会,Netscape在这些年里并没有爬行。Netscape 3,特别是Netscape 4是他们当天的暴龙Rexes,在他们巨大的下巴的强大力量之间打碎了所有的挑战者。IE也是一个可以正常渲染HTML的运行,更不用说一旦级联样式表广泛流行。 Netscape似乎不可阻挡。

但是到二十年代初,Netscape的发展萎缩,Internet Explorer的第一个版本5,其次是5.5,然后是上帝杀手,版本6持续改善,获得更大的市场份额。JavaScript目前的发展是有限的。Mozilla和Microsoft都采用了“JScript”语言,主要是为了避免版权问题而在标准化方面进行了大量的尝试。然而,浏览器能力的差异却很大。

PlanetQuake c1999

存档PlanetQuake版本,在Netscape 4,c1999 \。 我们用JavaScript来滚动主图片下的新闻头条。 这是异常的l33t ...

因此,编写在多个浏览器中工作的复杂脚本是乏味的,有时是完全不可能的。 那个时代的许多脚本都被降到了钟声和口哨。作为[反应军备库](reactarmory.com/)(和许多优秀的Jav… J. Nelson)(jamesknelson.com/),表示:“我 在这个时代进入JavaScript,因为我想将鼠标悬停图像添加到我正在创建的网站上的菜单栏。我还使用JavaScript去创建用户不友好下拉菜单,创建烦人的弹出窗口并且制作一些简单的动画。”

令人讨厌的滚动文字比比皆是。 警报,确认框以及大量的安全漏洞也是如此。在早些天可能是JavaScript最常见的单一使用方法是创建上述的DHTML效果,如图像翻转,功能最终在很大程度上被CSS替代。

有人用JavaScript做得很好。 作为[Dori Smith](www.dori.com/),[JavaScri… UTF8&tag = loserace-20&camp = 1789&creative = 9325&linkCode = as2&creativeASIN = 0321996704&linkId = 5c8ae57787dc7b044156a0ac42a84bfb)和语言笔记早期的程序员/作者,“90年代后期有大量的JS框架和文库。 Nick Heinle和Steve Champeon都有一个,只是两个例子。但他们都依赖拥有者的持续更新,并且对于任何人尝试在同一时期开发网站都是困难的。”它很难去 find 这些文库,并且很少人会看。当它来到网络上的动态互动时,场景由Java小程序,ActiveX小部件和Macromedia Flash主导。

它进入了二十世纪三十年代,还有一些幸福的融合发展,让JavaScript真正起飞。其中之一是为JavaScript驱动的前端和外部后端服务器之间的异步通信创建了各种方法,包括所有主流浏览器最终采用XMLHttpRequest(XHR)。另外,稍后就是Prototype,MooTools以及jQuery等框架的开发。


jQuery时期

时间段: 大概2004 - 2010年

问题: 增加站点复杂性,多浏览器支持

创新: 强大的DOM操作,早期单页应用程序

主流浏览器: Microsoft IE, Mozilla Firefox

在二十一世纪初,DHTML开始着手。 D代表Dynamic,基本上意味着“我们使用您在屏幕上看到的HTML进行操作,而不需要浏览器刷新”。它看起来有点可笑,但这在当时是巨大的交易。传统上,当你想要做任何事情时网站需要一个页面刷新。JavaScript提供一些玩具,但是标准网站仍是非常基于页面。当用户单击某个选项卡,将它们转到某个单独的HTML文档或者给一个整页刷新,以便在重新渲染HTML前调整模板变量。这仍然是许多网站的核心功能(包括这一个)的工作原理,但DHTML强大的支持意味着更多的网站可以变得更好,更动态。

在这个时期仅有两个主要浏览器,Microsoft’s IE6是一个不可思议的浏览器发布,但最终变成了一个不受支持的僵尸,徘徊在互联网脖子上,Mozilla’s Firefox。然而,边框上还有其他的,还有多个版本的IE仍在使用中。“由于Web标准状况不佳和网络中大量的错误,当时开发网络非常困难,”[ JavaScript:The Good Parts](www.amazon.com/gp/product/… (以及许多其他文字 对语言)的作者[Douglas Crockford](www.crockford.com/) 告诉我。 “自动更新尚未发明,因此,[新]浏览器版本的发布并没有消除网络中的错误。 但它确实增加了新的。”

尝试在这些浏览器之间呈现一致的体验是一场恶梦; 试图使这种体验的动态更加糟糕。 jQuery的创建者[John Resig](johnresig.com/), 谈论框架的起源:

当我最初创建这个库时,我想划破两处痒:1)为DOM提供一个简单的界面,2)减少开发过程中存在的跨浏览器问题的数量[[2]](#foot2)

跨多个浏览器中处理DOM对于2000年初的web开发者来说是一个重要的因素,但这并不是他们唯一的想法。该行业的另一场巨大革命是AJAX,它允许与服务器进行数据的异步交换,而不仅仅依赖于在页面渲染时可用。“2005年,[Jesse James Garrett](twitter.com/jjg) 发现了AJAX,DHTML的新名称,” Crockford说。 “AJAX比DHTML更成功,因为Netscape已经死亡,而且由于微软在IE6之后放弃了网络,因为W3C无效地分散了语义网。长期的忽视带来了急需的稳定。AJAX是一个大的冲击,鼓舞了许多新的图书库去制作单页网络应用程序。”

微软,谷歌等大型公司的早期开拓者们,在这些年来对AJAX做了很多令人信服的事情,但是在2004年发布的Gmail真正使得Web开发世界变得更加有趣。这是处理电子邮件的全新方法:通过在浏览器中进行所有操作并将邮件存储在Google的服务器上,这意味着用户可以从世界上任何地方的任何互联网设备访问他们的邮件,不需要安装本地电子邮箱程序。这不是第一个单页应用程序,但它是其大幅增加时期的最佳,并且被世界注意到。Gmail以其他几个网站的方式使用了DHTML和类似AJAX的代码,并且其他开发者希望能够快速,轻松地使用这两个,这导致框架的兴起,包括大类:[jQuery]( jquery.com/)。 “它解决了浏览器兼容性问题,添加了一大堆有用的实用程序,并介绍了除document.getElementById之外的选择器,”Nelson说。 “jQuery的唯一问题是它的重量。 如果你正在拨号,〜30kb是很多的。“

Crispy Gamer c2008

在Crispy Gamer,我们使用了大量的jQuery,扩展盒,标题翻转,交换标签等。

但jQuery不是第一个!原型,首先开发为Ruby on Rails添加AJAX支持,但也能够将DOM操作类似于于2005年2月发布的广为人知的jQuery。其次是2006年的jQuery,2007年的[MooTools](mootools.net/) 等。虽然这些文库每一个都提供了很多相似的功能,但他们有自己的方法。ProtoType重写并扩展了许多JavaScript的本机方法,让一些开发人员发现这些方法而不安。MooTools更改了JavaScript的Element对象,这意味着它允许更多地DOM操作。

jQuery没有这些东西,专注于提供一个基础JavaScript顶部的框架。这种方法在短短的几年中证明是最成功的,jQuery已经成为主导框架。它仍然保持到现在。更多的网站在2017年使用jQuery而不是JavaScript框架。

但是框架真正提供了什么?那么我们来看看这些代码片段。 以下是简单的JavaScript中隐藏点击元素的方式:

var el = document.getElementById('myElement');
var el2 = document.getElementById('myOtherElement');
el.addEventListener('click', function (e) {
  el2.style.display === 'none';
}

为了完成工作,假设您的浏览器正确支持这些命令,这在许多DHTML和AJAX用例当然不是一个安全假设。 以下是jQuery中的相同功能:

$('#myElement').click(function() {
  $('#myOtherElement').hide();
});

它不仅简洁易懂,而且还具有另外一个好处:jQuery确保它在所有浏览器中都可以工作,这样工程师就不用花时间担心。这也意味着开发人员不必花费太多时间重新创建一轮。 为什么jQuery已经提供了这些和其他几十个还要自己编写show / hide / toggle函数?“jQuery并没有真正改变我用JavaScript构建的内容,”尼尔森说,“但是确实改变了我如何构建的东西。它使JavaScript更简单,在当时似乎是神奇的。“简单地说,jQuery和其竞争的框架为所有使用它们的人开发更快更容易。

慢慢地随着网站越来越活跃,没有Google工程师的公司开始尝试和构建像Gmail(或moreso)一样复杂的应用程序,他们开始陷入困境。代码库由上千行jQuery代码组成,很难去维护并且包含如此多自定义功能,使新的开发变得具有挑战性。如果你的网站有五个可点击的元素,有五种情况下$(“# myelement ').click()是可以控制的。如果有500个可点击元素,它就变得有问题。如果是5000个可点击元素,它就变成了一个噩梦。

需要更多的东西。JavaScript框架开始发展,具有明显的后端特征和方法。单页应用程序时代已经到来。


单页应用程序时代

时间段: 大约 2010 - 2014

问题: DHTML超载, 大规模数据处理, 速度

创新: MVC框架, 双向数据流, DOM自动

主流浏览器: Google Chrome, Microsoft IE, Mozilla Firefox, Apple Safari

在单页应用程序时代其他一些创新有助于引导。一个是谷歌的Chrome浏览器,在2008年初发布。在Chrome的创新中,一组开发工具比以前看到的更强大。持续地改善和更新,谷歌工具允许开发人员实时地浏览、编辑HTML、CSS和JavaScript所发生的一切。它还提供了一个集成JavaScript的调试器,它允许以类似于传统编译语言的方式调试语言(以前,开发人员依靠浏览器插件或外部程序来实现这些特性)。大多主流浏览器提供类似的本机功能。

Chrome的其他主要贡献?[ V8 JavaScript渲染引擎](developers.google.com/v8/) ,允许独立的JavaScript平台创建[Node.js ](nodejs.org/)。 这篇文章的历史主要集中在JavaScript的前端,但我们不能不提到,Node.js已经成为网站发展的一个主要因素。爱好者和大企业一样采用Node的快速,异步方法使应用技术发展,证明受到开发者的欢迎,现在控制许多网站,包括这一个。

JavaScript框架需要变得更像这些已经存在的后端语言如C++, PHP, Ruby,和其他。

虽然不都是Chrome。单页应用程序时代可以说在Web生命的任何周期浏览器之间的分歧都有着最为平等的使用,但是……这是一种值得开发的乐趣。浏览器,甚至IE,采用了太多标准。首先,有一个很好的机会,你开发的网站将看起来和功能相同,无论你在浏览器打开它,或至少只需要微小的调整。CSS框架如Sass出现,使Web开发的可视化方面变得更容易,并且盒模型的限制已经相当广泛的编目(导致大量的讨论,有些善良,有些并不是,关于“Web 2”网站的数量是多少?)。混乱即将来临:flexbox即将来临,在2010年 Ethan Marcotte 出版了他的地标文章论响应式网页设计,但对于一个简短的时期,事情好像有点稳定了。

在单页应用程序世界中,情况并非如此。厌倦了处理jQuery数万行代码的高深莫测的泥沼,开发商开始铸造出其他的替代品。开发了新的框架,其侧重点不同于上一期的主要版本。这里需要的是一套工具,使他们能够管理日益复杂的应用程序。JavaScript框架需要变得更像这些已经存在的后端语言,如C++, PHP, Ruby,或者其他。

Enter Backbone.js.在2010年,开发者 Jeremy Ashkenas发布了他为单页应用程序开发人员编写的新工具集。轻量级的,快速的,不依赖jQuery(虽然开发者可以包含jQuery来解锁更多的Backbone特性),但是Backbone是专门用来解决“jQuery沼泽”问题的。本文从它的网站摘录:

“创建JavaScript应用程序很容易,但最终纠结成堆的jQuery选择器和回调,都在疯狂地将数据同步保存HTML界面,你的JavaScript逻辑,和你的数据库在服务器上。对于丰富的客户端应用程序,结构化的方法通常是更有帮助的。”

Backbone的方法是将代码拆分为数据模型,用于处理该数据的操作集,并显示它的视图。它还提供了很多“自动的”处理一些幕后操作意义。通过连接他们的视图到他们的数据,开发者不再担心在数据改变时更新他们的站点。Backbone为他们实现了……仍然如此。Backbone是一种优秀的产品,在一些非常大的、非常著名的Web应用程序中广泛使用。

同样在2010年,第一版的AngularJS出现在荧幕。最初是由 Miško Hevery and Adam Abrons开发,当它在谷歌结束时Hevery成了一名员工。它得到了谷歌和一批专注于外部开发人员的支持,尽管最近的版本被重写了,而且确实属于下一节。但是AngularJS 1.X,仍然是由开发商和谷歌的支持,依旧在广泛地使用互联网。

AngularJS 做列表

我不能合法证明给你我的AngularJS的任务,这里是AngularJS推广To-Do list为这个时代的“Hello World”应用程序。

AngularJS在某种程度上给出一个完整的前端架构解决方案甚至没有backbone.js。它提供了强大的工具和基于组件的体系结构,这用普通的jQuery很难或不可能重新创建。正如Nelson所说,“我已经试着(或者失败)用jQuery和原始JavaScript构建有用的单页应用程序几年了。然后我偶然发现AngularJS,告诉我,一个应用程序的模型不需要活在DOM里。这使得大型应用程序可行。”

使用它的双向数据流的概念,AngularJS允许开发者去创建应用程序,在服务器和客户端方面反射数据变化。例如:一个人可能创建了一个AngularJS应用,用户填写表单可以看到他们进入实时页面上其他地方的数据积累,并且知道数据是同时保存在某个服务器。再也没有人需要写大量的jQuery实现这种同步性–除了happened

AngularJS,像Backbone,也提供了一个大量的帮助挺操纵DOM。像Backbone,它可以很好地使用jQuery,但是不需要它去展示更多主要功能。这允许开发人员熟悉jQuery的生态系统逐步转移到AngularJS。

该框架还帮助推广了组件的使用——作为HTML标记的单独功能,但可能包含复杂的功能。这允许广泛的清洁和分隔的标记,其中的一个组件可以被称为一个标签,这样:

<userlist ng-repeat="user in $user.list"></userlist>

并生成一个完整的用户列表,包括详细信息和嵌入的HTML,比如指向用户配置文件页面的链接。同样重要的是,如果在$users.list阵列数据发生改变,AngularJS会重新用新更新的数据渲染列表,而开发者不需要做任何进一步的操作。

Backbone与AngularJS,突然有两个完整的工具箱填充单页面应用程序开发工具,解决大规模jQuery发展的诸多不足,使开发者避免经常写他们自己的类似功能。如果JavaScriptshi是基本手动工具,jQuery强大的工具,那么像Backbone和AngularJS框架就是线性封装-专业化集合,为了一个单一的目的:创建单页应用,而设计的高度复杂的设备。

问题是...他们不是特别小或者快(尤其在移动设备上),可能更难维护他们自己的权利,整个双向数据方法可能是一把真正的双刃剑。

2013年,Facebook发布了React,一个体积很小但在渲染时极快的前端框架。2014年,他们采用基于事件的方法来组织和开发应用程序,Flux。这些东西以及围绕它们成长的相关技术,又一次改变了JavaScript应用程序开发。


The Modern Era 现代的时代

时间: 大约2014 - 现在

问题: 速度,增加了应用程序的复杂性,可靠性

创新: 虚拟DOM,单向数据流,类型,测试

主流浏览器: Google Chrome, Apple Safari

在过去的几年里,在访问页面时,我们看到了稳步的多元化。仅限于家用PC的领域,目前是非常合理的用某个人的手机,平板电脑,笔记本电脑和台式电脑在同一天浏览一个网站。这些设备可用的带宽、处理器功率和屏幕分辨率差别很大。小的下载和快速的渲染是非常有价值的...不,你是从访问很多感觉完全舒服的锤击用户用海量图像下载,兆兆字节的广告代码,并自动播放视频内容的网站了解它!

但是内容网站不是单页应用程序,和其用户期望是不同的。单页应用程序是想要取代本地应用程序,这样的话,它们的速度和响应性将被取代。一个用户可以忍受五秒钟的负载去阅读最新的体育新闻,但他们在银行应用程序或者分析仪表板上点击一个按钮时不可能忍受五秒钟的负荷。

Facebook开发React为了加速或者便于他们的开发者使用。很多聪明的人花了很多时间在上面,这说明了。它不是完美的,而且有新的和潜在的更好的选择总是在流水线上,但它有很多提供给开发人员-如此多,以至于它经常被使用在并不真正需要它的项目中……但我们会做到这一点。

同样,如果你正在阅读这篇文章,这是一个非常好的机会,你可能已经听到或者积极地使用React作为你的整个前端解决方案。那是为什么?

React没有取代Backbone和AngularJS作为首选的JavaScript框架,虽然它的用法有了一个凹痕,部分原因是它不是一个完整的框架。React的设想是作为视图语言用于前端MVC框架。的确,React的创建是为了与其他现有的技术一起工作,然而其他一些技术是被Facebook开发定制的。也就是说,与Facebook从未接触过的科技公司一样,在家工作。它不处理数据,它不能处理的事件,它不处理XHR / Ajax…它所能做的是渲染组件。

同样,如果你正在阅读这篇文章,这是一个非常好的机会,你可能已经听到或者积极地使用React作为你的整个前端解决方案。那是为什么?因为生态系统的是围绕React的成长的,启用捆绑技术如Webpack 或者 Browserify,允许“React”成为一个方便快捷的方式“React加上一大堆其他的东西。”罗伊·尼尔森简洁地总结说:“从某种意义上说,现代时代的感觉与jQuery时代类似,因为它使构建单页应用程序变得简单得多,而不可能使新类型的应用成为可能。WebPACK和[NPM]( www.npmjs.com/) 促进这些组件和它们的资产分享。 [Babel](babeljs.io/) 意味着我们不需要创造新的语言只是为了让JavaScript使用。”

然而,React并非没有问题。基于生态系统的包意味着JavaScript文件大小可以迅速失控,除非给予大量的关注,整体景观甚至对于有经验的开发者都会被吓到,更别说新手。有质量的文档和友好的社区有助于减轻这种情况,但学习曲线仍然非常陡峭。

其他框架也在涌现。正如被提及的AngularJS 2已经基本上重写,以更具反应性的方式运作,它的渲染比AngularJS 1更快,这在展示大量的数据时是一个重要的因素。 Meteor,早React至少一年(而且,事实上,可以使用React作为其视图层),有一个专门的例子。Vue.js,第一次发布是在2014年2月,是一个小而快的可以和其他契合好的前端框架,允许增量的实现。它的语法与React相似,其结构虽然不完全相同,但遵循类似的基于组件的方法。[Preact]( preactjs.com/) 是一个非常小的,快的可替代的使用ES6从底层建成的React,一个更现代的JavaScript版本,享受增加受欢迎程度(React还可以与ES6一起工作,但初步建成是和ES5,这或多或少是我们已知的JavaScript大约十年了)。其他在跟随。

这是很重要的去注意React,AngularJS,和其他的正在做的是什么,而不是真正重新发明。其他语言正在做这些事情甚至在JavaScript世界有十年了,如Crockford指出,“我们停止叫它DHTML或者AJAX,而开始叫它单页应用程序,但是它仍然是和新的图库一样的东西。”这基本上是正确的;底层代码仍然是JavaScript,并且仍在做与人们在早期使用语言所做的相同的基本事情。现在的差异是一种方法。

所有这些框架趋向的焦点在于解决同一个问题:为开发者创建一个多样化的工具,使他们能够快速构建在各种设备上都能很好工作的快速的单页Web应用程序。他们倾向于把重点放在数据流和显示上:基本上,减少开发人员必须做的工作,目的是以一种对最终用户有用的方式在屏幕上获取提供给他们的数据,并在数据更改时自动化更新屏幕。当你在处理海量数据时,你想向用户展示一个类似经验的应用程序,他们就是救生员。

哪个把我们带到Vanilla JS。在这一点上,你可能想知道,在2017开发一个小网站的人应该利用他们微薄的JavaScript需求。AngularJS和React确实似乎有些过分,不是吗?

他们是。虽然对于单页应用程序或拥有大量移动部件的网站来说是非常棒的,但是如果您只想点击几个按钮并在选项卡之间进行交换,那么现代js框架就不必要地复杂了。答案是“我要用什么?”是的,根据您的特殊需求,无论是jQuery 3或Vanilla JS。

哟,老兄,我听说你喜欢CloseBrace

不,你不再看到Inception。是的,Inception使用Vanilla JS。

Vanilla JS不是一个框架。它不是一个文库。这不是什么除了,嗯,JavaScript。最近添加到JavaScript使其工作更加容易。document.querySelectordocument.querySelectorAll,例如,提供用类似CSS的语法类似jQuery元素选择器(“.exterior-link”, 例如)。ES5,ES6,与ES7是所有现代浏览器基本上完全支持的,减少对jQuery的跨浏览器的帮助对于那些不再被迎合迅速减少的用户传统浏览器的需要。性能方面,编写简单的JavaScript代码几乎总是很快(除非您的例程是次优的)甚至在更老、更慢的移动设备上。Smith,像许多开发商对这一新焦点的兴奋。“Vanilla JS的回报,这对我来说是巨大的。我非常讨厌堆栈溢出大量的人,海事组织,滥用jQuery和类似的框架。把所有的jQuery都带来,这样你就可以写三行代码而不是五行代码了?台湾。”

我们没覆盖很多Vanilla JS在CloseBrace,但是网络充满了好的资源。特别是,该网站[ Chris Ferdinandi ] 的朋友(twitter.com/chrisferdin… 产生了大量优秀的Vanilla JS内容在 Go Make Things,包括你可以使用大量开放资源代码在自己的项目里。

所以,我们在这里。这是2017,JavaScript生态系统既繁荣又令人困惑。似乎没有人能确定它将走向何方,只是它将继续增长和变化。网络不会去任何地方,这意味着JS不会去任何地方,我很高兴看到未来的时代带给我们什么。希望你觉得这篇文章很有趣和内容丰富,我们将更清楚地知道我们在哪里,我们是如何来到这里,以及为什么我们走上这条路有了更好的理解。感谢阅读。

如果你喜欢这篇文章,请考虑在RedditHacker News投票给它。哦,请,请留下评论,说明我错过或没有正确解释的所有伟大的东西!


关于 CloseBrace

CloseBrace对于JavaScript是一个教程和资源站点通过JavaScript开发者。我们聚焦于JavaScript全栈开发,目前在周二和周四创作的教程在我们的五分钟的React 系列。对每周更新的新内容感兴趣吗?注册我们没有垃圾,没有广告简讯!要帮助发展,文章和教程进一步支持吗?看看我们的教程 CloseBrace 前期计划!


感谢与说明

感谢James K. Nelson,Douglas Crockford, 和 Dori Smith,为本文提供给我他们自己的思想。我使用他们的许可摘录他们的邮件/ DMS。也感谢Charlie Lindahl和Dillon Nichols 在早期的草案提供有价值的反馈。

[1] 对于这段历史多来自 维基百科的JavaScript入门.

[2]引用 John Resig的博客在jQuery第十周年.

_Image 版权: kmiragaya / 123RF Stock Photo. Christopher Buecheler_修改