Node.js V4.0 正式版在今天正式发布并可以下载了,这也是第一个io.js 和 Node.js 的合并版本,目前最新的版本号是V4.0.0
。
在Node.js V4.0中,V8引擎更新到了V4.5版,可以支持大多数 ECMAScript 6 新特性。在Node.js 4.0 将引入
LTS(Long Term Support,长期支持版本)
长期支持计划的发行周期,首个LTS版本将于10月份发布,以后每6个月将发布一个主要的稳定版本(4月份一个,10月份一个,类似Ubuntu)。
1. 时间轴
Node.js V4.0做为第一个io.js 和 Node.js 的合并版本,可以说非常重大的一次更新。二者经历了io.js从node.js分离,做为单到的运行版本,再到今天的合并,经历了在互联网中不短的一段时间。
2014年12月
,多位重量级Node.js开发者不满Joyent对Node.js的管理,自立门户创建了io.js2015年1月
,io.js发布了1.0版本,并且很快就达到了2.0版本,同时其社区也非常活跃2015年2月
,Joyent 在 Node Summit 宣布成立 Node.js基金会2015年3月
,Node.js基金会章程草案在不断完善传播2015年5月
,io.js TC 投票加入 Node.js 基金会并合并到 Node.js2015年6月
,Node.js 基金会正式启动2015年7月
,Node.js 基金会董事会成立2015年8月
,第一次 Node.js Collaborator Summit2015年9月
,Node.js V4.0做为第一个 io.js 和 Node.js 的合并版本发布
2. Node.js V4.0主要更新
child_process:
ChildProcess.prototype.send()
和process.send()
跨平台的异步操作作为一个可选的回调参数,可在消息发送时候调用。例如.send(message[, sendHandle][, callback])
。#2620 (Ben Noordhuis)node:将
io.js
代码重命名为Node.js
。#2367(cjihrig)node-gyp:绑定了一个更新版的 node-gyp 支持所有版本的 Node 和 IO.js。 #2700 (Rod Vagg)
npm:版本从 2.13.3 更新到 2.14.2,包含一个安全更新,详情请看:npm/releases/tag/v2.14.2 (Kat Marchán) #2696
timers:提示定时器的性能,和一些小bug修复#2540(Jeremiah Senkpiel),nodejs/node-v0.x-archive#8751(Julien Gilli),nodejs/node-v0.x-archive#8905(Julien Gilli)
util:
util.is*()
函数被废弃,文档中已经注明废弃。建议用户寻找更可靠的替代方案:#2447 (Sakthipriyan Vairamani)v8:版本从 4.4.63.30 升级到 4.5.103.30 #2632 (Ali Ijaz Sheikh)
实现新的
TypedArray
原型方法:copyWithin()
,every()
,fill()
,filter()
,find()
,findIndex()
,forEach()
,indexOf()
,join()
,lastIndexOf()
,map()
,reduce()
,reduceRight()
,reverse()
,slice()
,some()
,sort()
。详细请看:TypedArray实现新的
TypedArray.from()
和TypedArray.of()
函数。详细请看:TypedArray实现了 arrow 函数。详细请看:Arrow_functions
完整更新记录请看:ChangeLog
3. ES6新特性试用
Generator函数
Generator
函数是ECMAScript 6中新增的特性,依靠Generator
函数,可以有效解决JavaScript异步编程中的回调嵌套问题。Generator
函数在Node.js V4.0已经得到了很好的支持:
function * myGenerator() { yield '状态1'; yield '状态2'; return '状态3'; } var my = myGenerator(); console.log(my.next()); //{ value: '状态1', done: false } console.log(my.next()); //{ value: '状态2', done: false } console.log(my.next()); //{ value: '状态3', done: true }
Promise对象
Promise
对象ECMAScript 6中的原生对象,利用Promise
对象,我们可以将深度嵌套的回调函数变为顺序执行,并且可以统一的进行错误处理。在Node.js V4.0已经也已经原生支持Promise对象:
var http = require('http'); function getURL(URL) { return new Promise(function (resolve, reject) { http.get(URL, function(res) { resolve(res); }).on('error', function(e) { reject(new Error(e)); }); }); } var web = getURL('http://niefengjun.cn'); var web1 = getURL('http://yijiebuyi.cn'); web.then(function(result){ console.log('niefengjun status:', result.statusCode); yijiebuyi.then(function(result){ console.log('yijiebuyi status:', result.statusCode); }).catch(function(err){ console.log(err); }) }).catch(function(err){ console.log(err); }) //niefengjun status: 200 //yijiebuyi status: 200
综上所述 对于nodejs开发者来说这是个好事情 再也不用担心是ios.js 还是nodejs主流分支了 开源的力量是伟大的 让我们共同进步 打造属于未来的nodejs天空
你打算打赏多少钱呢?
(微信扫一扫)