Node.js 8 说明

原PPT地址
翻译:@仙森

本文经译者授权,刊登在 Alinode 团队博客。如未经译者授权,谢绝转载。

主要内容

  • 5月30日发布 Node 8.0.0。
  • 8.x (LTS) 的 code name 是 Carbon。
  • ES2017 features 全部可以使用, 除了 shared memory 和 atomics。
  • N-API 已经添加,Native 模块开发更加方便。
  • WHATWG-URL的实施得到了增强。
  • 通过 util.promisify(),不需要再显式创建 Promise 了。

LTS - Long Term Support

github: nodejs/LTS

LTS介绍

偶数版本会在每年四月发布,然后在10月份开始长期支持。
LTS 会一直支持18个月,然后将进入长达一年的维护期。
这两种方式的区

Node.js Interactive 2016 North America 纪行

受 Node.js 基金会的邀请到 Node.js Interactive 2016 North America 做了一次 talk,以下是个人的一些记录。

关于 Node.js Interactive

Node.js 相关的技术会议主要包括

  • 每年夏天在旧金山举办的 Node Summit,规模较大,主要关注 Node.js 在各种企业/组织(如 ebay,NASA,Netflix 等)中的应用和 Node.js 生态系统方面的议题,偏架构/应用开发
  • 每年在世界各地举办的多场 Node Conf,规模不等,主要集中在欧洲和南北美洲,有点类似 JS Conf,内容比较广泛,主要由来自当地的开发者做分享。今年规模最大的应该是 Node Conf EU。
  • 每年在纽约举办的 EmpireNode,规模中等,面向开发者社区,内容也比较广泛
  • 由 Node.js 基金会在世界各地举办的 Node Live,规模比较小,内容取决于提交,主要是为了推广 Node.js 和接触世界各地的开发者,会去到一些当地不举办 Node 会议的地方(比如北京)

Node.js v6 LTS 杂谈(一):LTS 与 Node.js 的版本、分支

2016 年 10 月 18 日,Node.js v6 LTS (Boron) 发布,这也是 Node.js 启用 LTS 发布计划以来,第一次同时迎来两个 active LTS(v4 与 v6)。这系列文章将讲述 Node.js v6 LTS 带来的一系列变化,本篇主要围绕 LTS 展开。如果读者还对 Node.js LTS 的发布流程不了解,可以先阅读本篇,否则可以直接跳过阅读下一篇关于 Node.js Core 的变动。

Node.js LTS 计划

Node.js core 在 Node.js 与 io.js 合并后,为了保证发布稳定有序,让开发者能够合理安排升级,开始使用 LTS(Long Term Support)来规划发布周期。第一个 LTS 版本是 v4,发布于 2015 年 10 月。在这个规划下,Node.js 的版本相当于 master 分支在特定时间下经过稳定化处理的快照,时间到了就将 master 分支上稳定的部分整合起来,发布新的版本,因此 Node.js 的发布是以时间的流逝为准,在保证兼容性靠拢的前提下跳版本,而不是以兼容性和新

arguments 对象的老历史

本文经作者 柯拓 授权转载。原文地址:http://www.cnblogs.com/ziyunfei/p/5890322.html

引题:为什么 JavaScript 中的 arguments 对象不是数组 http://www.zhihu.com/question/50803453

JavaScript 1.0

1995 年, Brendan Eich 在 Netscape Navigator 2.0 中实现了 JavaScript 1.0,arguments 对象在那时候就已经有了。当时的 arguments 对象很像我们现在的数组(现在也像),它有一些索引属性,对应每个实参,还有一个 length 属性,代表实参的数量,还有一个现在浏览器已经都没有了的 caller 属性(等价于当前函数的 caller 属性)。但是,和现在的 arguments 对象不同的是,当时的 arguments 不是一个特殊的本地变量,而是作为函数的属性(现在仍保留着)存在的:

```j

解读 V8 GC Log(二): 堆内外内存的划分与 GC 算法

上一篇文章介绍了理解 V8 GC Log 的意义在哪,简单介绍了一下 V8 GC 的整体特征。在这篇文章里,我们介绍 V8 中堆内存的划分与新老生代的 GC 算法。这些基础知识是理解 V8 GC Log 的关键,不过这篇文章的介绍点到为止,能够读懂 V8 GC Log 即可,以免把大家在细节中带迷路。

V8 堆外内存的划分

在 V8 中,大部分的对象都直接在堆上创建(虽然 V8 的优化编译器会将一些静态分析后确定完全本地的对象放到栈上,即所谓的逃逸分析 = Escape Analysis,此处不赘述)。V8 将堆划分成了几个不同的空间(space,以下 以 4.x 为准,老版本有更多),其中新生代包括一个 New Space,老生代包括 Old Space,Code Space,和 Map Space,此外还有一个特殊的 Large Object Space 用于存储特别大的对象(也属于老生代)。V8 的用户还可以自行维护堆外内存,并将这些内存的数据上报给 V8,帮助 V8 调整 GC 的策略和时机。