var [foo] = bar的含义?

时间:2018-01-17 11:53:41

标签: javascript variables declaration

我看到了如下代码片段。有人可以告诉我是什么

var [input] = data; var [checkbox, payee, amount]  = data2;

装置?

function example(data,data2){
var [input] = data;
var [checkbox, payee, amount]  = data2;
............
............
}

4 个答案:

答案 0 :(得分:2)

正如Nina Scholz在评论中所述,这是一项解构任务。

如果data2[1, 2, 3]的数组,则var [checkbox, payee, amount] = data2;与以下内容相同:

    var checkbox = data2[0]; // 1
    var payee = data2[1]; // 2
    var amount = data2[2]; // 3

休息参数

您可以使用desformation和rest参数(如下例所示)将多个元素保存到数组中。



const digits = [1, 2, 3, 4, 5];
const [one, ...other] = digits;
console.log(one);
console.log(other);




省略值

您可以忽略您不感兴趣的值,就像这样



const myArray = ["car", "cat", "house", "dog", "window", "mouse"];
const [, cat, ,dog, , mouse] = myArray;
console.log(cat, dog, mouse);




或者像这样



const myArray = ["John", "Mary", "Steve", 0, 1, 2];
const [name1, name2, name3] = myArray;
console.log(name1, name2, name3);




答案 1 :(得分:1)

这只是destructuring assignment



var t = [1,2];

var [a,b] = t;

console.log(a);
console.log(b);




在数组上使用时,它会将连续的数组元素分配给赋值运算符左侧引入的变量。

答案 2 :(得分:1)

它是一个destructuring assignment,带有一个数组/可迭代对象(带有已实现的Symbol.iterator),其中包含要分配的值。

该值将进入与给定数据具有相同索引的变量。

为了只获取某个索引的某些部分,可以使用索引作为键的对象。

<div class="the-window">
  <a href="#">
    <div class="the-details">
      <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Aspect_ratio_-_3x2.svg/270px-Aspect_ratio_-_3x2.svg.png" alt="">
      <h4 class="the-header"><a href="#">Some text will be going in here</a></h4>
    </div>
</div>

答案 3 :(得分:0)

这是Destructuring assignment

  

解构赋值语法是一个JavaScript表达式   使得从数组或属性中解压缩值成为可能   对象,分为不同的变量

根据你的例子,

var data = [1];
var [input] = data;
console.log(input); //1