[Wondgirl]ECMAScript6(ES6)(四)数组的解构赋值

// 1.定义时解构赋值
var x = 1;
var y = 2;
var z = 3;

   let [a,b,c] = [4,5,6];
   console.log("a = " + a);
   console.log("b = " + b);
   console.log("c = " + c);
   // 2.后期解构赋值
   [x,y,z] = [10,20,30];
    console.log("x = " + x);
   console.log("y = " + y);
   console.log("z = " + z);


   // 3.嵌套解构赋值
   let [age,[salary,[name]]] = [20,[3000,["Bill"]]];
   console.log("age = " + age);
   console.log("salary = " + salary);
   console.log("name = " + name);

   // 4.没有对应的匹配值,会怎样
   let [m,n] = ['a'];
   console.log("m = " + m);
   console.log("n = " + n);//undefined未定义
   // 5.部分匹配
   let [v1,v2] = [1,2,3,4,5];
   console.log("v1="+v1);//1
   console.log("v2="+v2);//2

   // 6.匹配剩余的值
   let [value1,value2,...others] = [0,1,2,3,4,5,6,7,8,9];
   console.log("value1 = " + value1);//0
   console.log("value2 = " + value2);//1
   console.log("others.length = " + others.length);//8
   console.log("others = " + others);//2,3,4,5,6,7,8,9
   // 7.匹配不成功会怎样
   try
   {
       let [t1] = 20;
   }
   catch(e)
    {
           console.log("let[t1] = 20:" + e);
    }

    // 8.Generator函数的解构赋值
    // 只要某种数据结构具有Iterator接口,都可以采用数据形式的解构赋值
    // 每执行一次,都会指向yield语句
    // Generator函数,天生具有Iterator接口
    // Generator每调用一次,会暂停
    function* gen(x)
    {
            while(true)
            {
                    yield x;
                    x = x + 2;
            }
    }
    let [g1,g2,g3] = gen(10);
    console.log("g1 = " + g1);//10
    console.log("g2 = " + g2);//12
    console.log("g3 = " + g3);//14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值