Node.js v8.0.0正式發(fā)布!看看帶來了哪些主要新特性
前言
Node.js于5月30號(hào)在其官方博客上發(fā)布了Node.js v8.0.0。這一版本將成為當(dāng)前的長期維護(hù)版本,從2017年10月開始到2019年12月31號(hào)。而Node.js v6.0.0將會(huì)在2018年4月進(jìn)入維護(hù)模式,并于2019年4月結(jié)束。
最新發(fā)布的版本代號(hào)為Carbon,帶來了很多重要的特性改進(jìn)和一些全新的特性。
引入async_hooks模塊
新引入實(shí)驗(yàn)性模塊async_hooks(之前叫作async_wrap),它包含了一組用于診斷的API,開發(fā)人員可以用它監(jiān)控Node.js事件循環(huán)里的各種操作,跟蹤句柄對象全生命周期的事件。可以通過該模塊的createHooks方法注冊用于處理句柄對象生命周期各個(gè)階段事件的函數(shù)。
const asyncHooks = require('async_hooks') asyncHooks.createHooks({ init, pre, post, destroy })
更多關(guān)于這個(gè)新模塊的內(nèi)容可以查看文檔和它的開發(fā)進(jìn)度情況。
引入N-API
Node.js API(N-API)為開發(fā)人員提供了一組新的實(shí)驗(yàn)性API,用于開發(fā)原生插件。它獨(dú)立于底層的JavaScript運(yùn)行時(shí),并作為Node.js的一部分進(jìn)行維護(hù)。引入N-API的主要目的是提供一套與虛擬機(jī)無關(guān)的應(yīng)用二進(jìn)制接口(ABA),這樣插件只要編譯一次就可以運(yùn)行在各種版本的Node.js上,甚至包括來自其他公司的虛擬機(jī),比如微軟的Chakra Core。
N-API也是一個(gè)實(shí)驗(yàn)特性,更多有關(guān)N-API的信息可以參考官方文檔。開發(fā)人員現(xiàn)在就可以使用這套API,并可以提供反饋以便更好地改進(jìn)API。
Buffer安全性的改進(jìn)
在v8.0.0之前,Buffer是通過new Buffer(num)
方法來分配的,并沒有使用零值來初始化內(nèi)存空間,新建的Buffer對象可能包含敏感數(shù)據(jù),會(huì)導(dǎo)致安全問題。
不過,使用Buffer(num)
構(gòu)造函數(shù)創(chuàng)建出來的對象對性能有一點(diǎn)影響,如果開發(fā)人員更加看重性能,那么可以使用Buffer.allocUnsafe(num)
來創(chuàng)建一個(gè)未初始化內(nèi)存的對象。
// 使用零值初始化過的對象 const safeBuffer1 = Buffer.alloc(10); const safeBuffer2 = new Buffer(10); // 未初始化的對象 const unsafeBuffer = Buffer.allocUnsafe(10);
升級V8引擎到5.8版本
升級V8引擎帶來了更好的性能和更多面向開發(fā)人員的API。V8 5.8可以保證ABA兼容5.9和即將到來的6.0,從而確保Node.js原生插件的穩(wěn)定性。后續(xù)還會(huì)逐步將引擎升級到5.9和6.0。
升級引擎還意味著新的編譯器管道——TurboFan和Ignition。Ignition是V8引擎的解釋器,TurboFan是優(yōu)化編譯器,雖然它們在之前就已存在,但把它們作為默認(rèn)的組合還是首次(將在V8 5.9里實(shí)現(xiàn))。這是一個(gè)重大的轉(zhuǎn)變,將為性能帶來極大的提升。
升級npm到5.0.0
Node.js v8.0.0包含了最新的npm 5.0.0,其主要特性如下。
- 新的標(biāo)準(zhǔn)化文件鎖機(jī)制。
- 不再需要--save,所有的安裝都是默認(rèn)保存的。
- node-gyp現(xiàn)在支持Windows。
- 新的發(fā)布包含SHA512和SHA1校驗(yàn)和檢查。
更多有關(guān)npm 5.0.0的新特性可以參考npm的文檔。
Node.js v8.0.0還包括子進(jìn)程、控制臺(tái)、文件系統(tǒng)、流、HTTP、TLS、URL等方面的改進(jìn)。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
node.js實(shí)現(xiàn)博客小爬蟲的實(shí)例代碼
這篇文章通過實(shí)例代碼來給大家介紹如何利用node.js實(shí)現(xiàn)博客小爬蟲,有需要的朋友們可以直接運(yùn)用文中給出的實(shí)例代碼來進(jìn)行實(shí)踐學(xué)習(xí),感興趣的朋友們下面來一起看看吧。2016-10-10Node.js數(shù)據(jù)庫操作之查詢MySQL數(shù)據(jù)庫(二)
這篇文章主要介紹了Node.js數(shù)據(jù)庫操作之查詢MySQL數(shù)據(jù)庫的相關(guān)資料,文中介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql能帶來一定的幫助,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03Koa從零搭建到Api實(shí)現(xiàn)項(xiàng)目的搭建方法
這篇文章主要介紹了Koa從零搭建到Api實(shí)現(xiàn)項(xiàng)目的搭建方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07node.js(expree.js?)模擬手機(jī)驗(yàn)證碼登錄功能
這篇文章主要介紹了node.js(expree.js?)模擬手機(jī)驗(yàn)證碼功能及登錄功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01windows使用nvm對node進(jìn)行版本管理切換的完整步驟
這篇文章主要介紹了windows使用nvm對node進(jìn)行版本管理切換的完整步驟,在使用之前各位務(wù)必卸載掉自己安裝過的nvm或者node版本包括環(huán)境變量之類的,要保證自己的電腦完全沒有node環(huán)境,需要的朋友可以參考下2024-03-03nodejs與瀏覽器中全局對象區(qū)別點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于nodejs與瀏覽器中全局對象區(qū)別點(diǎn)總結(jié)內(nèi)容,對此有需要的朋友們可以學(xué)習(xí)下。2021-12-12Vue+Node實(shí)現(xiàn)的商城用戶管理功能示例
這篇文章主要介紹了Vue+Node實(shí)現(xiàn)的商城用戶管理功能,結(jié)合實(shí)例形式詳細(xì)分析了商城用戶管理的前臺(tái)登錄、校驗(yàn)、跳轉(zhuǎn)、退出等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12