Javascript 在Node.js 8.9.4中使用默认参数进行对象分解

Javascript 在Node.js 8.9.4中使用默认参数进行对象分解,javascript,node.js,object,destructuring,default-parameters,Javascript,Node.js,Object,Destructuring,Default Parameters,我在这里运行这段代码时遇到了一个问题,它被保存到一个文本文件中,并与命令行中的节点一起运行 let x; {k1: x = null } = {k1: "Hello"}; console.log(x); 运行此操作将在赋值运算符无效时引发错误 但是,当代码直接输入到节点解释器时,它将打印出我所期望的“Hello” 有人知道这是什么吗?其思想是使用默认值构造一个类,并使用相同的方法更新该类,在缺少某些内容时重用当前值。您必须使用 或者只是: let { k1: x = null } = { k

我在这里运行这段代码时遇到了一个问题,它被保存到一个文本文件中,并与命令行中的节点一起运行

let x;

{k1: x = null } = {k1: "Hello"};
console.log(x);
运行此操作将在赋值运算符无效时引发错误

但是,当代码直接输入到节点解释器时,它将打印出我所期望的
“Hello”

有人知道这是什么吗?其思想是使用默认值构造一个类,并使用相同的方法更新该类,在缺少某些内容时重用当前值。

您必须使用

或者只是:

let { k1: x = null } = { k1: "Hello" };
赋值语句周围的圆括号(…)是必需的 在不使用 声明

{a,b}={a:1,b:2}不是有效的独立语法,因为{a,b} 左侧被视为块,而不是对象文字

但是,({a,b}={a:1,b:2})和var{a,b}={a:1, b:2}

注意:(…)表达式前面必须加分号或 它可用于执行前一行上的函数

let { k1: x = null } = { k1: "Hello" };