内容简介:时隔一年,Node.js 12 如约而至,正式发布第一个 Current 版本。它将从2019年10月开始进入长期支持(LTS)版本直到2022年4月。该版本带来的新特性:
前言
时隔一年,Node.js 12 如约而至,正式发布第一个 Current 版本。它将从2019年10月开始进入长期支持(LTS)版本直到2022年4月。
该版本带来的新特性:
- V8 更新带来好多不错的特性。
- HTTP 解析速度提升。
- 启动速度大幅提升。
- 更好的诊断报告和堆分析工具。
- ESM 模块更新。
LTS
Node维护了着两条发布流程线:奇数版本每年的10月份发布,偶数版本第二年的4月份发布。当一个奇数版本发布后,最近的一个偶数版本会立即进入LTS维护计划,一直持续18个月(LTS Start )。再之后会有12个月的延长维护期(Maintenance Start)。
这两个期间可以支持的变更是不一样的:
- LTS期间支持的变更:bug fix,安全问题 fix, 文档更新和与未来新特性兼容问题的更新。
- Maintenanece期间支持的变更: 严重的bug fix,严重的安全问题 fix 或者文档更新。当一个偶数版本发布时,奇数版本只有2个月的维护期,再只能乖乖升级。
就目前而言,Node.js 6.x 和 8.x 将在 2019 年末结束 LTS 的支持,大家尽快升级到 10.x 吧。
ESM
自从ES6中的标准化以来,import/ exportsyntax已成为JavaScript开发人员的首选模块语法,而Node团队一直在努力实现本机化。实验性支持从第8阶段的Node 8.0开始,并在最新的Node版本上迈出了重要的一步。所有主流浏览器都支持 ECMAScript模块 <script type="module"> ,因此这是Node的一个巨大更新。
// default exports
import module from 'module'
// named exports
import { namedExport } from 'module'
// namespace exports
import * as module from 'module'
V8引擎更新到7.4
本次版本更新,也带几个不错的特性:
- 异步堆栈跟踪
- 参数调用不匹配时的调用速度优化
- 更快的 JavaScript 解析速度
- 更快的 await
ECMAScript 新特性支持
随着 V8 的更新,很多 ES 的新规范也落地了,比如支持类的私有变量。
class Greet {
#name = 'World';
get name() {
return this.#name;
}
set name(name) {
this.#name = name;
}
sayHello() {
console.log(`Hello, ${this.#name}`);
}
}
在类的外部或去 #name 变量会抛出异常
const greet = new Greet() greet.#name = 'NewName'; // -> SyntaxError console.log(greet.#name) // -> SyntaxError
改善了启动性能
Node 将在构建时间之前为内置库构建代码缓存并将其嵌入为二进制文件。主线程能够使用此代码缓存,将启动时间缩短30%。
HTTP 解析速度提升
默认的 HTTP 解析器切换为 llhttp ,性能提升显著
TLS和安全
Node 12 现在支持TLS 1.3,它提供更高的安全性和更短的延迟。TLS 1.3已经成为协议的一个重大更新,并且正在积极地在Web上集成。通过实施TLS 1.3,Node应用程序将增加最终用户隐私,同时通过减少HTTPS握手所需的时间来提高请求性能。此外,默认情况下已禁用TLS 1.0和1.1,并且crypto库已删除已弃用的函数。
堆大小分配策略
以前使用默认的V8堆大小,相当于700MB(32位系统)或1400MB(64位系统)。Node现在将根据可用内存确定堆大小,这将确保它不会使用超过允许的资源。
堆转储功能
Node 12提供了生成堆转储的功能,从而可以更轻松地调查内存问题。
其他值得关注的更新
- 工作线程不再需要标志
- http已将其默认解析器更新为llhttp
- assert 验证所需的参数并调整松散的断言
- buffer 改进使其更稳定和安全
- async_hooks 删除已弃用的功能
本文首发于公众号「 前端新视界 」,分享前端资讯、技术干货、编码人生,欢迎关注。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Node 12 值得关注的新特性
- Node.js 12 值得关注的新特性
- 【译】2017年值得学习的 3 个 CSS 新特性
- Swift 5.0 值得关注的特性:增加 Result 枚举类型
- Java 11 发布线路图:有哪些值得期待的新特性?
- Swift 5.0 值得关注的特性:更强大的 Raw String
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Introduction to Computation and Programming Using Python
John V. Guttag / The MIT Press / 2013-7 / USD 25.00
This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides student......一起来看看 《Introduction to Computation and Programming Using Python》 这本书的介绍吧!