当前位置: 首页 > 科技观察

JavaScript2018:

时间:2023-03-12 22:59:38 科技观察

你做什么和不需要深入JavaScript在今天已经成熟了——我们不再只是在页面上做一些小的交互元素,我们正在用JavaScript构建整个大型应用程序。当然,这也使得它比过去更加复杂,而且在这个不断变化的JavaScript生态系统中,我们很难知道整个系统有多大。EthanBrown是一名职业软件工程师,是两本JavaScript书籍的作者,这两本书均由O'Reilly出版。EthanBrown花了很多时间来剖析JavaScript,试图弄清楚其中的内容,以及现代JavaScript开发人员如何开始迎合它。2018年,Brown对智能开发人员可以熟悉的JavaScript生态系统的各个方面给出了他的前沿或至少有用的预测。有几件事需要注意:首先,他根据JavaScript对标准的所有这些更改指出了一些值得了解的好东西,尽管其中列出的某些东西您可能不感兴趣。对这些有一些大概的了解,可以帮助你在遇到困难和做决定时及时联系,知道该去找谁,知道该学什么技术。他还强调,他所做的选择完全是基于他自己的想法和经历,当然可能与你的完全不同。布朗说:“这些只是我个人的想法,我们都有自己的看法,我会想念其中的一些。”让我们从WebAssembly说起:WebAssembly是JavaScript的一个子集,它为其他语言提供了一个编译器。如果你想将你的C++代码编译成JavaScript,WebAssembly是你需要知道的——它允许几乎任何语言在浏览器或Node中运行,并且有一些有趣的应用程序。布朗说:“我感觉这项技术会流行起来,会变得很重要,我一定会关注它,并在2018年花一些时间更好地学习它。”函数式编程:“这不是什么新鲜事,已经被大多数JavaScript社区采用,但我认为2018年是函数式编程真正达到质量和规模的一年,”布朗说。通常对它的批评是它更难学习,更难理解,Brown继续说道,但这也是看待问题的不同方式:让每个人都开始使用函数式编程,这种强制性的编程风格混乱,副作用,以及所表现出来的困惑,我们也很陌生。Brown的建议是:“如果你想尝试真正严格的函数式编程,你可以看看Elm或ClojureScript,但你今天也可以从一句‘好吧,我所有的代码都将变成纯函数式’开始。”不变性(Immutability):可以和函数式编程搭配使用。Brown说,“然而,大多数人,当他们第一次尝试不可变数据结构时,会想:‘哇,这效率不高,你有所有的副本,内存使用是没有必要的。’”。但要记住,Brown继续说道,您只是在复制发生变化的部分——结构的其余部分保持不变。同时,JavaScript中的严格比较既快速又便宜,而且大多数切换到不可变数据结构的人都报告了性能提升。更好的是,不变性为实验提供了一个天然的安全网——当您知道您不能修改任何已经存在的东西时,您会更愿意尝试不存在的东西,您只是创建修改后的副本部分。熟悉的东西。它也非常适合初级开发人员。单向数据绑定:这是前端同学关心的事情。它是由Elm提出的,它被Facebook应用到Flux,然后是Redux,现在是Angular和Vue,”Brown说。每个人都越来越意识到这是一个好主意。东西,是时候得到了在2018年也知道它。单向数据绑定可以更轻松地管理应用程序中的状态。当你第一次尝试它时,你会想,天哪,要写很多代码,有点矫枉过正。对于一些小的应用,确实??有点大材小用,但是一旦你的应用达到一定的规模,就会影响到你对整个应用的控制而不仅仅是你负责的那部分。因为当你使用单向数据绑定的时候,你需要考虑到应用程序每一层的数据流向计算属性名/文字属性值简写:》可以说这是ECMAScript6(ES6)的黑马特性。但是我没有看到人们经常使用它,而且我认为会有很多地方可以使用它。他其实是一个小小的语法糖,可以让你动态构造属性名、对象初始化或者缩写对象属性值。’,布朗说。它也适用于函数式编程,所以如果您以前没有见过它,请检查一下——我希望看到社区中越来越多的人使用此功能。不用担心的事情:正如布朗所说,至少目前,某些知识领域是可以跳过的。面向对象编程:“我自己并不是JavaScript中经典OOP的忠实粉丝。我认为会有更好的模型和更好的方法来实现代码重用。所以在JavaScript领域,你也会涉及到对象的知识——面向编程,但不必担心。”Generators:“这是JavaScript中很酷的特性之一,在某些地方肯定有它的用例,但我认为它的主要特性已被async/await取代.我们很高兴在Koa.js中使用生成器,这样我们就可以用同步语义进行异步编程,但是现在有了async和await就更好了。所以不要太担心,除非你认为使用生成器是有意义的一些奇怪的用例,”布朗说。Symbol:“另一个不错的特性,也是对JavaScript语言的补充,但首先:我没有看到每个人都再次使用他;其次,每次我尝试使用Symbol时,除了框架使用问题和序列化。”Brown说。总的来说,他认为Symbol不是JavaScript语言的合适设计。他的建议是:保持观望。