专栏首页IT派JavaScript 2018:标星知识点及次要点梳理一览

JavaScript 2018:标星知识点及次要点梳理一览

作者 | Michelle Gienow

翻译 | NimitzDEV

来源 | 众成翻译

JavaScript 现今已发展成熟——我们也不再是在页面上做一些小小的互动元素了,而是使用 JavaScript 构建整个大型应用。 当然,这也使得其比过去更为复杂, 在这个变化万千的 JavaScript 生态系统中,我们也已难以知道整个系统到底有多大。

Ethan Brown,以软件工程师为职业的同时,还是两本 JavaScript 书籍(http://www.oreilly.com/pub/au/6091)的作者,均由 O'Reilly 出版。 Ethan Brown(https://www.linkedin.com/in/ethan-brown-5b74b13a/) 花了大量的时间剖析 JavaScript,尝试着弄清楚这里面都有什么,以及一个现代 JavaScript 开发者该如何去开始迎合这些东西。

在2018里,对于聪明的开发者们可以去熟悉的东西, Brown 给出了他对 JavaScript 生态系统中各个方面最前沿,至少也是很有用的预测。有两点需要说明的是: 首先,他基于所有 JavaScript于 标准的这些变化中,指出了一些好的可以去了解的,尽管里面所罗列的一些东西可能不是你所关注的。对这些有一些大体上的了解能够让你在遇到困难难以抉择时,产生联系,知道去找谁,知道该去了解什么样的技术。

他还强调到,他所做的这些选择完全根据他个人的想法以及经验,这当然可能和你的完全不一样。Brown 说到: “这些只是我的个人想法,我们都各有各的想法,而且这其中我也会有疏漏。”

先从需要关注的点开始

WebAssembly:WebAssembly 属于 JavaScript 的一个子集, 它提供了一个针对其他语言的编译器。 如果你想将你的 C++ 代码编译成 JavaScript, WebAssembly 就是你需要了解的(https://thenewstack.io/ready-web-assembly-revolution/)——它允许几乎任何语言运行于浏览器或者 Node 之中,而且也有了一些比较有意思的应用了。 Brown 表示:“我感觉这个技术会火,会变得非常重要。我也肯定会细心留意,并且在 2018 花些时间去更好的学习它。 ”

函数式编程: “并不是什么新的东西,也已经被 JavaScript 社区的大多数所应用, 但我觉的 2018 才是函数式编程真正达到具有质量和规模的一年”,Brown 说道。对其常见的批评都是更难去学习,更难去理解,Brown 继续说道,但这也是看待问题的角度不同:让所有人都开始使用函数式编程,在这种强制性的编程风格下所显现出的迷惑、副作用以及混乱,我们看来也是非常奇怪的。

Brown 的建议:“如果你想尝试真正严格的函数式编程,你可以看看 Elm(http://elm-lang.org/) 或者 ClojureScript(https://clojure.org/about/functional_programming),不过,你也可以一句话从今天开始‘好的,我所有的代码都要变成纯函数式的了’。”

不可变性 (Immutability):可以和函数式编程搭配在一起。 Brown 认为,“然而大部分人,第一次尝试不可变数据结构时,都会想:‘Wow, 这不太高效啊,你对所有的东西都创建了副本,所占用的内存不是很必要啊’”。但需要记住的是,Brown 继续道,你只是复制了变化的那一部分 -- 其他的结构依然保持不变。 同时,在 JavaScript 中进行严格比较速度快而且开销低,大部分切换到不可变数据结构的人都表示性能提升了。

更好的是,不可变性为一些试验行为提供了天然的保护网 -- 你在知道你无法修改任何已有东西,仅是创建了修改部分的副本的情况下,你会更愿意去试验那些不熟悉的东西。这对入门开发者来说也非常好。

单向数据绑定:“这是前端同学关心的东西,由 Elm 提出,被 Facebook 应用于 Flux, 进而还有 Redux,以及现在的 Angular 和 Vue”,Brown 说道。大家都越来越发觉这是个好东西, 在 2018 年也是时候去了解它了。

单向数据绑定让你更方便地管理应用中的状态 。 当你第一次尝试的时候你会想,天啊,又要写那么多代码,有点大材小用的样子了。对于一些小型应用来说,确实是大材小用了,但一旦你的应用达到了一定的规模,将会影响你对整个应用的控制而不仅仅是你所负责的部分。因为当你在使用单向数据绑定时,你需要考虑到应用的每一层数据的流转。

计算属性名/字面属性值简写:“可以说这是 ECMAScript 6 (ES6) 的黑马级特性。但我目前并没有看到大家经常用到,我觉得会有很多地方可以用到。 他其实是一个小小的语法糖,能够让你动态的构建属性名称,对象初始化或简写对象属性值。”,Brown 说道。 “我感觉像是每周都用这个特性玩出了新花样。同时和函数式编程搭配在一起也是挺不错的, 如果你之前没见过一定要去了解一下 -- 我更希望看到社区中越来越多人去使用这个特性。”(http://www.benmvp.com/learning-es6-enhanced-object-literals/)

不需要担心的东西:

如 Brown 所说,至少现在,某些领域的知识可以选择跳过。

面向对象编程:“我本人并不太喜欢在 JavaScript 中使用经典的面向对象编程。我认为会有更好的模型,更好的方式去实现代码复用。所以在 JavaScript 领域中,你也会涉及到面向对象编程的知识但不必为此而感到烦恼。 ”

Generators:“这是 JavaScript 中一个比较酷的特性, 一些地方肯定会有它的使用案例,但我认为其主要的特性已经被 async/await 所替代。 我们很兴奋的在 Koa.js 中使用 Generator ,这样我们就可以用着同步的语义进行异步编程, 但现在有了 async 和 await 而且更好用。 所以除非你觉得在一些奇怪的使用案例中使用生成器比较合理的话也不用在意太多”, Brown 说道。(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator)

Symbol:“另外一个好的特性,对 JavaScript 语言的一个补充,但首先:我并没有看到大家再用他;其次,每次我尝试去使用 Symbol,除了在框架使用和序列化上出现问题外无其他收获。”,Brown 说道。总的说来,对于 JavaScript 这门语言,他并不认为 Symbol 是个合适的设计。 他的建议:保持观望的态度。

原文:JavaScript 2018: Things You Need To Know, and a Few You Can Skip - The New Stack(https://thenewstack.io/js-2018-things-need-know-can-skip) 翻译:http://zcfy.cc/article/javascript-2018-things-you-need-to-know-and-a-few-you-can-skip-the-new-stack

本文分享自微信公众号 - IT派(it_pai)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 6月机器学习热文TOP10,精选自1400篇文章

    每月一次的热文推荐又来了!这次,我们从将近 1400 篇机器学习文章中挑出了 10 篇热文,以飨读者。

    IT派
  • Python 标准库之 LRU 缓存实现学习

    LRU (Least Recently Used) 是缓存置换策略中的一种常用的算法。当缓存队列已满时,新的元素加入队列时,需要从现有队列中移除一个元素,LRU...

    IT派
  • 资源 | Style2paints:专业的AI漫画线稿自动上色工具

    IT派 - {技术青年圈} 持续关注互联网、大数据、人工智能领域 由于档期限制,我们经常会看到动画由于制作时间紧张而出现作画崩坏的情况。来自苏州大学的研究者...

    IT派
  • JavaScript 2018:标星知识点及次要点梳理一览

    作者 | Michelle Gienow 翻译 | NimitzDEV 来源 | 众成翻译 JavaScript 现今已发展成熟——我们也不再是在页面上做一些小...

    企鹅号小编
  • PCL点云配准(1)

    在逆向工程,计算机视觉,文物数字化等领域中,由于点云的不完整,旋转错位,平移错位等,使得要得到的完整的点云就需要对局部点云进行配准,为了得到被测物体的完整数据模...

    点云PCL博主
  • hadoop kerberos操作

    笨兔儿
  • 一个好评如潮的UI框架,Quasar Framework

    前几天推荐了一边关于2020年几个vue比较常用的ui框架,很多人在底下留言说Quasar很不错,于是就去官网看了一下,第一眼很是惊艳,不比elementUI ...

    王小婷
  • 短视频技术指南-数据篇-Mixlab实验性项目

    对于数据采集有2种主要的方法,一种是通过api网络请求的拦截,破解api的请求参数及规则;另一种则是模拟用户的操作行为,读取界面上返回的数据来提取。

    mixlab
  • 一款功能强大的软件源代码分析与审计工具

    ApplicationInspector是一款功能强大的软件源代码分析与审计工具,它可以帮助研究人员识别和发现目标应用程序中的公众周知的功能以及源代码中有意思的...

    FB客服
  • Ui Automator 框架和Ui Automator Viewer你会用吗?附送「必备adb命令」拿走不谢 !

    前 3 篇文章给大家讲解了 Appium 环境安装,Appium 理念以及实现方式(四大点),第一个 app 自动化脚本。

    清菡

扫码关注云+社区

领取腾讯云代金券