技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> JavaScript --> JavaScript: 2016年回顾

JavaScript: 2016年回顾

浏览:1375次  出处信息

2016年是意义重大的,奇怪的,欢欣鼓舞 / 可怕的一年,这取决于你的观点。与其他事件相比,只专注于JavaScript可能看起来无关紧要,但它是每个Web开发人员的工作生活的一个巨大的一部分。

JavaScript 人气持续爆涨。不是每个人都喜欢这门语言,但是现在你可能很少听到十年前嘲笑的评论。就个人而言,我一直喜欢JavaScript - 即使在早期,令人沮丧的年头。那些从C++,Java或PHP方向过来使用它的人可能首先会感到困惑:JavaScript看起来似曾相识,却又如此陌生。克服你的推断,你会欣赏它简单的优雅,实用性和灵活性。(That said, date handling is still a nightmare!,这就是说,日期处理仍然是一场噩梦!愚人码头看不懂这句是什么意思。)

JavaScript在五月迎来了它第21个生日,让我们回顾一下它刚成熟的第一年……

ECMAScript演变

ES6 / 2015是这门语言自诞生以来最重要的更新。这份规范花了7年才完成,但现在浏览器和其他运行运行环境终于开始支持箭头函数,let,const,代理和更多令人喜悦的特性。ES6的兼容性也慢慢变得很好

如果你需要支持更老版本的浏览器,完全切换到ES6可能还有点早。更老版本的意思是,一年多前发布的任何东西。您可以使用编译器将ES6转译为ES5,如Babel,但是如果你不引入额外的构建步骤,开发就会变得复杂。

ES7/2016比起革命更像是一种进化。一个令人激动的新特性是async,它允许以同步的方式编写异步代码,而不需要回调或Promise的复杂语法(它让我一直很头疼)。

渐进式的Web App(Progressive Web Apps)

2016年,我最喜欢的基于JavaScript的技术是渐进式的Web App。PWA( Progressive Web Apps)在Google的2015年Chrome开发者峰会上宣布,但稳定的技术和工具最终于7月发布的Chrome 52中实现。PWA允许离线优先功能,并取代片状AppCache方法。Web App终于可以和原生App竞争,并提供以下优势:

  • 一个首屏的图标。

  • 快速启动和自定义启动屏幕

  • 更快的执行

  • 没有Internet连接的脱机功能

  • 网址,链接和书签

  • 全屏或主题接口

  • 沙箱执行

  • 本地和/或基于云存储与同步

  • 更少的设备空间和处理资源

  • 更加安全 (前提是使用HTTPS协议)

  • 从任何搜索引擎中很容易发现

  • 先试后安装

  • 更简单的部署:它只是一个Web应用程序

  • 没有应用商店一说: 你的应用可以包含你最原始的,最疯狂的想法,而且没有人会向你收取30%的利润。

最重要的是:任何网站或应用程序都可以在几个小时之内转换为PWA。步骤如下:

  • 在你的服务器上启用HTTPS

  • 创建一个应用程序清单(manifest)—在你的应用程序根目录下的一个JSON文件,它定义了名称、颜色、图标和显示选项。

  • 创建一个服务工作者(Service Worker)— 在你的应用程序根目录下的一个JavaScript文件,它拦截网络调用和根据需要返回缓存或实时数据。

目前还是处于早期阶段,例子很少,但是PWA提供了一个惊人的机会来使您的Web应用程序“移动化”。诚然,不能保证苹果是否会实现该技术,但这不重要:你的应用程序仍然可以在Safari上运行,它只是不会从离线执行中受益。我有一种预感,一旦 Android 上的网络体验取得明显的优势,苹果会受到激励并支持PWA。

有关详细信息,请参阅Dev.Opera的Progressive Web Apps:最终资源集合Google的PWA指南

框架固定

要做出公正的判断是很困难的,但是React似乎在今年最受关注。你可能会不同意;这取决于你在使用什么,在浏览什么,在和谁交谈!

Vue.js越来越受欢迎,版本2已于九月发布。

AngularJS可能失去了在2015获得的一些势头,但在9月Angular 2发布后,情况可能会发生一些变化。新版本完全是重写的;它不向后兼容v1.0的版本。

新的框架和库是令人兴奋,但是十年前的jQuery仍然强大。3.0版本已于6月9日发布,v3.1随后于7月7日出现。这个库现在以严格模式( strict mode )运行,支持Promises,并应用了各种补丁。(查看升级指南的完整更改列表。)

jQuery被 96.4%的使用 JavaScript 的网站上采用。相比之下,Angular - 最常用的现代框架 - 拥有0.5%的份额。jQuery 1.x是最流行的版本,占总量的93.5%。其次是2.x版本,它有6.0%的占有率,3.x版本是0.5%。

我一直批评开发人员在每个项目中默认使用jQuery。当一个更合适的选择或一些小的JavaScript就足够的时候,它可能被过度使用。然而,它提供了更浅的学习曲线,比大多数框架更灵活。一个框架或库要想取代jQuery,还需要很长一段时间。

API滥用

啊,电池状态API。在2013年我讲述它的时候,它似乎很有用;什么会比当你的app检测到用户的手机准备要自动关机时,负责任地减少网络请求和处理更好呢?

不幸的是,Mozilla估计大约6%的网站使用API,但是大部分都是广告商检测(相当)独特的电池状态和并跟踪用户浏览不同的域。当他们知道用户更加焦急时,某些服务也有提高价格的可能性.…

虽然这不是JavaScript或API问题本身,Mozilla采取了前所未有的措施,从Firefox 53中删除电池状态API,来解决隐私的原因。这个问题不可能出现在IOS设备上;和其他具有类似原因的API也包括近距离传感器蓝牙。这些问题是多么让人感到羞愧啊,这些API接口都非常有实用价值,我真心的希望以后版本可以把隐私方面的问题解决掉。

新Node

Node.js计划每年更新版本两次,今年的四月和十月版本号为6.0和7.0。这个平台正处于上升的趋势,尽管W3C技术小组报告Node.js服务器的使用率占比仅为0.2%相比于占比高达82.3%的PHP。这个数据或许稍微有一些误导,因为就算Node.js被安装了,Node.js服务器也识别不出来。

没有服务器端的运行时可以赶得上PHP:它已经被使用了很长一段时间,仍然是主机选择提供的最实用的语言。然而,Node.js开始走出了它的一条路,而且被所有信仰语言的开发者广泛使用。

Yarn的故事(The Yarn of Yarn)

我喜欢npm,并认为它是Node.js工具爆发的主要原因之一。我从来没有经历过太多的问题,但我没有在像Facebook这样大的项目上工作使用过。

Facebook的工程师在十月发布了Yarn。它是一个新的Node.js包管理器,旨在比npm更快更稳定。它依赖于npm注册表,所以应该保持完全兼容。

Tim Severien的Yarn vs npm:你需要知道的每一件事描述了提供的优点。我同意他的结论:

尽管Yarn不是一个分支(fork),它改善了npm 几个缺陷。但如果npm从中学习,并且Facebook、Google和其他Yarn贡献者帮助npm继续完善,而不是新建Yarn,不是更好吗?

对疲劳的厌倦

2016年的I-can’t-take-this-any-more(我不能再忍受了)文章被转到了Jose Aguinaga的在2016年学习JavaScript是怎样的感受中文译文)。其他对疲劳的厌倦的表达还有:dayssincelastjavascriptframework.com

这些可能是对JavaScript的当前状态的一种幽默的调侃,但是越来越难以跟上最新的趋势,框架和建议。当面对大量的选择来评估时,开发人员会做内心斗争。

我的建议:不要试图跟上前端发展的速度。这是不可能的。不管是你今天看好的哪个系统,明天都可能被其他东西替代。为你的项目选择一个选项,坚持它,除非这个选项变得站不住脚了。

只有一个绝对的确定的事情:JavaScript本身。首先学习语言,并继续建立你的知识。您的经验将帮助您了解每个框架的运作方式,以便您做出明智的选择。这个选择可能是完全不需要框架。

新年快乐!

翻译自:https://www.sitepoint.com/javascript-2016-in-review/

建议继续学习:

  1. 规范自己的JavaScript书写    (阅读:5945)
  2. JavaScript,只有你想不到    (阅读:5087)
  3. 我希望我知道的七个JavaScript技巧    (阅读:4520)
  4. JavaScript是Web的汇编语言(一):语义Web已死!    (阅读:4350)
  5. Javascript的那些事儿    (阅读:4089)
  6. 能说明你的Javascript技术很烂的五个原因    (阅读:3954)
  7. javascript语句的执行过程分析    (阅读:3112)
  8. JavaScript是Web的汇编语言(二):疯狂,亦或只是精神错乱?    (阅读:2900)
  9. JS不是前端的全部    (阅读:2739)
  10. Javascript诞生记    (阅读:2675)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1