【发布时间】:2016-07-16 13:43:52
【问题描述】:
有没有办法像这样在 JavaScript 中执行多重赋值:
var a, b = "one", "two";
相当于这样:
var a = "one";
var b = "two";
【问题讨论】:
-
如果你愿意; var a = "一", b = "二";
标签: javascript multiple-assignment
有没有办法像这样在 JavaScript 中执行多重赋值:
var a, b = "one", "two";
相当于这样:
var a = "one";
var b = "two";
【问题讨论】:
标签: javascript multiple-assignment
在 ES6 中你可以这样做:
var [a, b] = ["one", "two"];
以上代码是 ES6 符号,称为数组解构/对象解构(如果是对象)。
您在表达式的右侧提供数组,并且在左侧有用方括号括起来的逗号分隔变量。
第一个变量映射到第一个数组值,依此类推。
【讨论】:
var [a, b] = [1,2,3,4,5]
虽然您不能使用var a, b = "one", "two"; 并按照各自的顺序将它们分配给每个变量,但您可以这样做:
var a, b;初始化这些变量为undefined。
您也可以使用var a, b = 'foo'; 将b 分配给'foo',同时将'a' 初始化为undefined。
var a, b;
> a
--> undefined
> b
--> undefined
> var d, e;
> e
--> undefined
> f
--> Uncaught ReferenceError: f is not defined
> var c, g = 'foo';
> c
--> undefined
> g
--> "foo"
看起来像:
const user = {
id: 42,
is_verified: true
};
const {id, is_verified} = user;
console.log(id); // 42
console.log(is_verified); // true
您还将在 JavaScript 中看到这一点 import members of a module:
从模块中导入多个导出。这会将 foo 和 bar 都插入到当前作用域中。
import {foo, bar} from '/modules/my-module.js';
【讨论】:
不,你不能这样做。 Javascript 不支持这种类型的声明
【讨论】:
JS 的冰河时代,你可以使用 Destructuring Assignment