Eloquent JavaScript 中的奇怪变量初始化

Strange variable initialization in Eloquent JavaScript

我开始阅读 section on Node.js in the online copy of Eloquent JavaScript(顺便说一句,一本做得很好的书)。所有示例都使用以下构造来捕获 require() 调用的结果:

const {fs} = require("fs");

如果我尝试在我的 node.js 8.9.3 64 位中重现它,生成的 fs 变量是未定义的。一个更常见的结构:

const fs = require("fs");

而不是 returns 一个可用的变量。

我的问题。我错过了一些明显的东西吗? (也许我只需要从头开始阅读这本书……)。第一个构造比更正常的变量定义有什么好处?谢谢!

在 ES6 中,你可以像这样销毁对象:

const obj = {first: 1, second: 2};
const {first, second} = obj;

console.log(first,second); // 1 2

同样,Node 的 fs 有一个成员 readFile,其使用方式如下:

const {readFile} = require('fs');