Node10 CHANGELOG---已发布!!!
发布于 7 年前 作者 yuu2lee4 4720 次浏览 来自 分享

2018-04-24, Version 10.0.0 (Current), @jasnell

Notable Changes

  • Assert

    • Calling assert.fail() with more than one argument is deprecated. [70dcacd710]
    • Calling assert.ok() with no arguments will now throw. [3cd7977a42]
    • Calling assert.ifError() will now throw with any argument other than undefined or null. Previously the method would throw with any truthy value. [e65a6e81ef]
    • The assert.rejects() and assert.doesNotReject() methods have been added for working with async functions. [599337f43e]
  • Async_hooks

    • Older experimental async_hooks APIs have been removed. [1cc6b993b9]
  • Buffer

    • Uses of new Buffer() and Buffer() outside of the node_modules directory will now emit a runtime deprecation warning. [9d4ab90117]
    • Buffer.isEncoding() now returns undefined for falsy values, including an empty string. [452eed956e]
    • Buffer.fill() will throw if an attempt is made to fill with an empty Buffer. [1e802539b2]
  • Child Process

  • Console

    • The console.table() method has been added. [97ace04492]
  • Crypto

    • The crypto.createCipher() and crypto.createDecipher() methods have been deprecated. Please use crypto.createCipheriv() and crypto.createDecipheriv() instead. [81f88e30dd]
    • The decipher.finaltol() method has been deprecated. [19f3927d92]
    • The crypto.DEFAULT_ENCODING property has been deprecated. [6035beea93]
    • The ECDH.convertKey() method has been added. [f2e02883e7]
    • The crypto.fips property has been deprecated. [6e7992e8b8]
  • Dependencies

  • EventEmitter

    • The EventEmitter.prototype.off() method has been added as an alias for EventEmitter.prototype.removeListener(). [3bb6f07d52]
  • File System

    • The fs.promises API provides experimental promisified versions of the fs functions. [329fc78e49]
    • Invalid path errors are now thrown synchronously. [d8f73385e2]
    • The fs.readFile() method now partitions reads to avoid thread pool exhaustion. [67a4ce1c6e]
  • HTTP

    • Processing of HTTP Status codes 100, 102-199 has been improved. [baf8495078]
    • Multi-byte characters in URL paths are now forbidden. [b961d9fd83]
  • N-API

    • The n-api is no longer experimental. [cd7d7b15c1]
  • Net

    • The 'close' event will be emitted after 'end'. [9b7a6914a7]
  • Perf_hooks

    • The PerformanceObserver class is now an AsyncResource and can be monitored using async_hooks. [009e41826f]
    • Trace events are now emitted for performance events. [9e509b622b]
    • The performance API has been simplified. [2ec6995555]
    • Performance milestone marks will be emitted as trace events. [96cb4fb795]
  • Process

    • Using non-string values for process.env is deprecated. [5826fe4e79]
    • The process.assert() method is deprecated. [703e37cf3f]
  • REPL

    • REPL now experimentally supports top-level await when using the --experimental-repl-await flag. [eeab7bc068]
    • The previously deprecated “magic mode” has been removed. [4893f70d12]
    • The previously deprecated NODE_REPL_HISTORY_FILE environment variable has been removed. [60c9ad7979]
    • Proxy objects are shown as Proxy objects when inspected. [90a43906ab]
  • Streams

    • The 'readable' event is now always deferred with nextTick. [1e0f3315c7]
    • A new pipeline() method has been provided for building end-to-data stream pipelines. [a5cf3feaf1]
    • Experimental support for async for-await has been added to stream.Readable. [61b4d60c5d]
  • Timers

    • The enroll() and unenroll() methods have been deprecated. [68783ae0b8]
  • TLS

    • The tls.convertNONProtocols() method has been deprecated. [9204a0db6e]
    • Support for NPN (next protocol negotiation) has been dropped. [5bfbe5ceae]
    • The ecdhCurve default is now 'auto'. [af78840b19]
  • Trace Events

    • A new trace_events top-level module allows trace event categories to be enabled/disabld at runtime. [da5d818a54]
  • URL

    • The WHATWG URL API is now a global. [312414662b]
  • Util

    • util.types.is[…] type checks have been added. [b20af8088a]
    • Support for bigint formatting has been added to util.inspect(). [39dc947409]

    详情请点击查看

8 回复

希望ES6 module能在10LTS正式启用

ECDH终于动了,之前公钥不能转换真的很残废

来自酷炫的 CNodeMD

甚至支持私有属性

发布了!!!

越来越给力

看一看node 10 的 V8 6.6实现了多少es语法新特性吧

异步迭代器

async function*generator(){
  yield 42;
}

const iterator = generator();
iterator.next().then(function(step){
  iterator[Symbol.asyncIterator]() === iterator; // true
  step.done === false; // true
  step.value === 42; // true
});

配套语法还有个for-await循环语句

async function*generator(){
  yield *[1,2,3];
}
(async () => {
  for await(const i of generator()) console.log(i);
})();
// 1
// 2
// 3

可选catch参数

用不着catch(err)里面的err的时候,可以直接不写了

try {
} catch {
}

正则表达式强化

  • 命名组(?<name>...)
const t = /abc(?<num>\d)def/.exec('abc1def');
t.groups.num; // '1'
  • unicode
const regexGreekSymbol = /\p{Script=Greek}/u;
return regexGreekSymbol.test('π'); // true

String.prototype.trim…

String.prototype.trimStart === String.prototype.trimLeft;
String.prototype.trimEnd === String.prototype.trimRight;

class fields

并没有动…依然不支持…

class C {
  x = 'x'; // error
}

但 是

node --harmony

class C {
  a = 'aaa';
  #x = 123;
  constructor(x){
    if (x !== undefined) this.#x = x;
  }
  x(){
    return this.#x;
  }
}
new C().a; // 'aaa'
new C(42).x(); // 42
new C(42).#x; // SyntaxError: Invalid private field '#x'
new C().x(); // 123

Change Log

还是没有看到 es6 module

回到顶部