2016年是令人难忘的、奇怪的、有些欢欣鼓舞/可怕的一年,这取决于你的观点。与其他事件相比,只关注JavaScript似乎微不足道,但它是每个Web开发人员工作生活的重要组成部分。JavaScript的受欢迎程度继续飙升。不是每个人都喜欢这门语言,但你很少听到十年前的嘲讽意见。就个人而言,我一直很喜欢JavaScript——即使是在最初令人沮丧的几年里。那些从C++、Java或PHP方向接近它的人一开始会感到困惑:JavaScript看起来很熟悉,但事实并非如此。克服你的假设,你会爱上它的简单优雅、实用性和灵活性。(示例:日期处理仍然是一场噩梦!)JavaScript在5月迎来了它的21岁生日,让我们回顾一下成熟发展的第一年......ECMAScript开发ES6/2015是该语言诞生以来最重要的一次更新。该规范花了七年时间才完成,但浏览器和运行时终于开始支持箭头函数、let、const和更多有趣的功能。ES6兼容性表正在变成亮绿色。如果你需要支持旧版浏览器,那么全面切换到ES6可能还为时过早。对于较旧的浏览器,该项目是一年多前发布的。您可以使用ES6到ES5的编译器(例如Babel),但是开发非常复杂并且需要引入额外的构建步骤。ES7/2016更像是一场革命。一个令人兴奋的新特性是async,它允许以同步方式编写异步代码,而没有回调或Promises的语法复杂性(这一直让我感到困惑)。ProgressiveWebApps2016年我最喜欢的基于JavaScript的技术是ProgressiveWebApps。PWA是在谷歌2015年Chrome开发者峰会上宣布的,但稳定的技术和工具终于在7月份出现在Chrome52中。PWA允许离线优先功能并取代不稳定的AppCache方法。Web应用程序最终可以与本地应用程序竞争并提供以下优势:主屏幕图标快速启动和自定义启动画面无需互联网连接即可快速执行离线功能URL、链接和书签全屏或主题界面沙盒执行本地或基于云的Less设备空间和处理资源更好的安全性(HTTPS是先决条件)从任何搜索引擎轻松发现请在安装前尝试更简单的部署:它只是一个Web应用程序该程序可以包含任何裸露内容,您绝对希望没有人可以拿走您的30%的利润!最重要的是:任何网站或应用程序都可以在数小时内转换为PWA。步骤:在服务器上启用HTTPS。创建应用程序清单-应用程序根目录中的一个JSON文件,用于定义名称、颜色、图标和显示选项。创建一个ServiceWorker-根目录中的一个JavaScript文件,它拦截网络调用并可以根据需要返回缓存或实时数据。早期的例子很少,但PWA提供了一个很好的机会来“移动”您的Web应用程序。虽然不能保证Apple会实施该技术,但这并不重要,您的应用程序仍可在Safari中运行,只是无法从离线执行中获益。我有一种感觉,一旦Android上的网络体验得到显着改善,Apple将鼓励对PWA的支持。有关详细信息,请参阅Dev.Opera的ProgressiveWebApps:权威资源集合和Google的PWA指南。框架很难公平对待,但React似乎在今年受到了最多的关注。你可能不同意;因为这取决于您使用的是什么、您浏览的位置以及您所说的内容!Vue.js越来越受欢迎,2.0版于9月发布。AngularJS可能已经失去了它在2015年获得的一些势头,但这可能会随着9月份Angular2的发布而改变。新版本是完全重写的;它不向后兼容v1.0。新的框架和库令人兴奋,但已有10年历史的jQuery仍然很强大。3.0版于6月9日发布,v3.1版于7月7日发布。该库现在以严格模式运行,支持Promises,并应用了各种修复。(有关更改的完整列表,请参阅升级指南。)jQuery在96.4%使用JavaScript的网站上使用。相比之下,Angular是使用最多的现代框架——0.5%。jQuery1.x是最受欢迎的版本,占安装量的93.5%。2.x版占6.0%,3.x版占0.5%。我一直批评开发人员直接使用jQuery。当有更合适的选项或一点javascript就足够时,它可能会被过度使用。但是,它提供了更浅的学习曲线并且比大多数框架更灵活。其他框架或库需要很多年才能取代它。API滥用,例如电池状态API。2013年写的时候觉得有用;当您的应用程序检测到用户的手机即将关机时,您究竟如何才能更好地减少网络请求和处理?不幸的是,Mozilla估计约有6%的网站使用该API,但大多数是广告商用来监控电池状态和跟踪用户访问哪些网站的域。当服务提供商知道用户的手机即将绝望关机时,他们可以借此提高某些服务的价格。虽然这不是JavaScript或API的问题,但出于隐私原因,Mozilla采取了前所未有的措施,将电池状态API从Firefox53中的Removed中移除。这不太可能出现在iOS设备中,出于类似原因的其他API包括传感器和蓝牙.这是一种耻辱:这些API具有真正的好处,我希望在未来的版本中解决隐私问题。每年两次的Node.js新版本发布进度为我们带来了4月份的6.0版本和10月份的7.0版本。该平台目前正在上升,尽管W3Techs报告称Node.js服务器的使用率仅为0.2%,而PHP为82.3%。这些数字可能有点误导,因为即使安装了Node.js也不一定能被识别。没有服务器运行时可能赶上PHP:因为PHP已经存在了很长时间,并且仍然是主机最可靠的选择。然而,Node.js正在书写自己的道路,并被所有语言信仰的开发者广泛使用。Yarn我真的很喜欢npm,认为它是Node.js工具如此受欢迎的主要原因之一。我从来没有遇到太多npm的问题,但我没有在像Facebook这样大的项目上工作。Facebook工程师在10月发布了Yarn。它是一个新的Node.js包管理器,旨在比npm更快、更稳定。它依赖于npm注册表,因此它与npm完全兼容。TimSeverien的Yarnvsnpm:你需要知道的一切。我同意他的结论:虽然Yarn不是克隆品,但它改进了npm的几个缺陷。如果npm向Yarn学习并请Facebook、Google和其他Yarn贡献者改进npm,那不是很酷吗?2016年一篇名为I-can't-take-this-any-more的文章入选JoseAguinaga2016年学习JavaScript的感受。亚军:dayssincelastjavascriptframework.com。这些可能是一种表明JavaScript当前状态的幽默方式,但关键是要跟上最新的趋势、框架和建议变得越来越难。面对海量的技术方案评估,开发人员之间发生了争执。我的建议:不要试图跟上。因为根本做不到。您今天关注的任何系统明天都会被更好的系统所取代。为你的项目选择一个好的方案并坚持下去,除非它让工作变得糟糕。可以肯定的一件事是JavaScript本身。先学习语言,然后继续扩展你的知识。您的经验将帮助您了解每个框架的工作原理,以便您做出明智的选择。选择可能是完全放弃框架。新年快乐!
