Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的这种形式或语法叫什么?_Javascript_Node.js - Fatal编程技术网

javascript中的这种形式或语法叫什么?

javascript中的这种形式或语法叫什么?,javascript,node.js,Javascript,Node.js,在我正在研究的代码库中,有一行代码采用以下形式: const {key1: value1, key2:value2} = name 从左到右的任务是什么?不=从右向左工作 如何重新定义变量名 事实并非如此 从左到右的任务是什么?不=从右向左工作 是的,这就是这里发生的事情。那是。这一行: const {key1: value1, key2:value2} = name 与此等效: const value1 = name.key1; const value2 = name.key2;

在我正在研究的代码库中,有一行代码采用以下形式:

    const {key1: value1, key2:value2} = name
从左到右的任务是什么?不=从右向左工作

如何重新定义变量名

事实并非如此

从左到右的任务是什么?不=从右向左工作

是的,这就是这里发生的事情。那是。这一行:

const {key1: value1, key2:value2} = name
与此等效:

const value1 = name.key1;
const value2 = name.key2;
你说得很对,它看起来像是一个被分配给变量的对象,但事实恰恰相反。那是故意的。当您这样做时:

const x = {a: 1, b: 2};
const {a: vara, b: varb} = x;
您正在创建一个对象,将一个结构组合在一起并将其指定给x。当您这样做时:

const x = {a: 1, b: 2};
const {a: vara, b: varb} = x;
您正在分解一个结构,将右侧的对象分解为左侧的目标vara和varb。其语法相同,只是颠倒了。两种表格都有速记版本:

const a = 1;
const b = 2;
const x = {a, b};
使用范围标识符中的a和b的值创建具有a和b属性的对象。这,

const {a, b} = x;
从x中获取a和b属性,并使用它设置常数a和b的值

我应该注意到,关于解构的任何内容都与let、const或var无关。就像在创建对象时可以使用任何范围内变量或属性来提供对象属性的值一样,在解构时也可以这样做。因为对象解构是从{开始的,如果不是在表达式中进行,则需要在前面加一个{以使{看起来不像块的开头:

常数x={a:1,b:2}; 让a,b; {a,b}=x; console.loga,b;//1 2 常数y={}; {a:y.ayyy,b:y.beee}=x; console.logy;/{ayyy:1,beee:2} 如何重新定义变量名? 使用普通JS语法:让newName=name

从左到右的任务是什么?不=从右到左工作? 赋值是从右到左进行的。语法是对象分解。 您可以在这里了解它:

标记为***的行中引用了什么名称?最初传递的名称还是创建的对象? 代码中未创建新对象。“名称”指的是原始传递的对象


这实际上是三个独立的问题和三个独立的答案。闻起来很像一个家庭作业问题。看看。//***是用来评论代码的,不是家庭作业,只是我问了一个糟糕的问题。通常最好在代码文本上设置正确的格式,也可以显示代码的最佳实践。例如:>1。变量nam如何设置e是否可以重新定义?使用正常的JS语法:让newName=name;通常,对提交的内容应用正确的格式,以便轻松区分常规文本和源文本或要突出显示的内容。一个很好的例子是项目3>标记为***的行中引用了什么名称?这是最初传递的还是对象创建的d?代码中未创建新对象。名称指原始传递的对象。