这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
Node.js v8.0.0 已正式发布。v8.0.0 是下一个主要的版本,带来了一系列重大的变化和新功能,内容十分多!下面这篇文章主要带着大家一起看看 Node.js v8.0.0 带来了哪些主要新特性,需要的朋友可以参考借鉴,下面来一起看看吧。
前言
Node.js 于 5 月 30 号在其官方博客上发布了 Node.js v8.0.0。这一版本将成为当前的长期维护版本,从 2017 年 10 月开始到 2019 年 12 月 31 号。而 Node.js v6.0.0 将会在 2018 年 4 月进入维护模式,并于 2019 年 4 月结束。
最新发布的版本代号为 Carbon,带来了很多重要的特性改进和一些全新的特性。
引入 async_hooks 模块
新引入实验性模块 async_hooks(之前叫作 async_wrap),它包含了一组用于诊断的 API,开发人员可以用它监控 Node.js 事件循环里的各种操作,跟踪句柄对象全生命周期的事件。可以通过该模块的 createHooks 方法注册用于处理句柄对象生命周期各个阶段事件的函数。
- const asyncHooks = require('async_hooks')
- asyncHooks.createHooks({
- init,
- pre,
- post,
- destroy
- })
更多关于这个新模块的内容可以查看文档和它的开发进度情况。
引入 N-API
Node.js API(N-API)为开发人员提供了一组新的实验性 API,用于开发原生插件。它独立于底层的 JavaScript 运行时,并作为 Node.js 的一部分进行维护。引入 N-API 的主要目的是提供一套与虚拟机无关的应用二进制接口(ABA),这样插件只要编译一次就可以运行在各种版本的 Node.js 上,甚至包括来自其他公司的虚拟机,比如微软的 Chakra Core。
N-API 也是一个实验特性,更多有关 N-API 的信息可以参考官方文档。开发人员现在就可以使用这套 API,并可以提供反馈以便更好地改进 API。
Buffer 安全性的改进
在 v8.0.0 之前,Buffer 是通过
方法来分配的,并没有使用零值来初始化内存空间,新建的 Buffer 对象可能包含敏感数据,会导致安全问题。
- new Buffer(num)
不过,使用
构造函数创建出来的对象对性能有一点影响,如果开发人员更加看重性能,那么可以使用
- Buffer(num)
来创建一个未初始化内存的对象。
- Buffer.allocUnsafe(num)
- // 使用零值初始化过的对象
- const safeBuffer1 = Buffer.alloc(10);
- const safeBuffer2 = new Buffer(10);
- // 未初始化的对象
- const unsafeBuffer = Buffer.allocUnsafe(10);
升级 V8 引擎到 5.8 版本
升级 V8 引擎带来了更好的性能和更多面向开发人员的 API。V8 5.8 可以保证 ABA 兼容 5.9 和即将到来的 6.0,从而确保 Node.js 原生插件的稳定性。后续还会逐步将引擎升级到 5.9 和 6.0。
升级引擎还意味着新的编译器管道——TurboFan 和 Ignition。Ignition 是 V8 引擎的解释器,TurboFan 是优化编译器,虽然它们在之前就已存在,但把它们作为默认的组合还是首次(将在 V8 5.9 里实现)。这是一个重大的转变,将为性能带来极大的提升。
升级 npm 到 5.0.0
Node.js v8.0.0 包含了最新的 npm 5.0.0,其主要特性如下。
更多有关 npm 5.0.0 的新特性可以参考 npm 的文档。
Node.js v8.0.0 还包括子进程、控制台、文件系统、流、HTTP、TLS、URL 等方面的改进。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对 phperz 的支持。
来源: http://www.phperz.com/article/17/0814/338884.html