Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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 - Fatal编程技术网

javascript中赋值表达式周围的括号有什么意义

javascript中赋值表达式周围的括号有什么意义,javascript,Javascript,我读了下面的代码 这与以下内容有什么区别: { a, b } = { a: 10, b: 20 }; console.log(a); // 10 console.log(b); // 20 考虑到他们有相同的结果 另一点是赋值表达式周围的括号,你的第二个例子不应该起作用。您应该会看到一个错误 let a, b; { a, b } = { a: 10, b: 20 }; // Uncaught SyntaxError: Unexpected token '=' 原因是花括号{a,b}被认为是

我读了下面的代码

这与以下内容有什么区别:

{ a, b } = { a: 10, b: 20 };
console.log(a); // 10
console.log(b); // 20
考虑到他们有相同的结果


另一点是赋值表达式周围的括号,你的第二个例子不应该起作用。您应该会看到一个错误

let a, b;
{ a, b } = { a: 10, b: 20 };

// Uncaught SyntaxError: Unexpected token '='
原因是花括号
{a,b}
被认为是块而不是对象文字

// This is a block
{
    console.log('Hello world');
}
当被括号包围时,它被认为是一个对象文字

({ hello: world })
注意:赋值语句周围的括号(…)是 在使用对象文字解构赋值而不使用 声明

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

// This is a block
{
    console.log('Hello world');
}
但是,({a,b}={a:1,b:2})和常量{a,b}={a:1, b:2}

您的(…)表达式前面必须加分号,否则可能会 用于执行前一行上的函数

资料来源: