• 欢迎访问web前端中文站,JavaScript,CSS3,HTML5,web前端demo
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏web前端中文站吧

JavaScript: 2016年回顾

ES2015(ES6) web前端中文站 2年前 (2017-04-25) 697次浏览 已收录 0个评论

JavaScript: 2016 年回顾

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

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 本身。首先学习语言,并继续建立你的知识。您的经验将帮助您了解每个框架的运作方式,以便您做出明智的选择。这个选择可能是完全不需要框架。

新年快乐!

 


web 前端中文站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:JavaScript: 2016 年回顾
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址