<第三天学习>解构赋值

    // let arr = [1, 2, 3];
    // let a = arr[0];
    // let b = arr[1];
    // let c = arr[2];
    // console.log(a, b, c);

数组解构

等号左边是右边的模板,必须长得一样

let [a, b, c] = [1, 2, 3];
console.log(a, b, c);
// 输出 1 2 3 

let [a, b] = [1, 2, 3];
console.log(a, b, c);
// 输出 1 2  

[a, b, c = "js"] = [1, 2];
console.log(a, b, c);
// 输出 1 2 js

[a, b, ...c] = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(a, b, ...c);
// 输出:1 2 3 4 5 6

[, , , a, , , , , ,] = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(a);
// 输出 4  (选择性过滤)

传统模式上 交换赋值需要添加一个中间变量来实现,现在可以参考下面

    let x = 1,
      y = 2,
      t;
    console.log(x, y);
// 输出:1 2
    t = x;
    x = y;
    y = t;
    console.log(x, y);
// 输出:2 1    

    let a = 10;
    b = 20;
    console.log("a=%d,b=%d", a, b);
// 输出:10 20
    [b, a] = [a, b];
    console.log("a=%d,b=%d", a, b);
// 输出:20 10

对象解构

等号左边是右边的模板,必须长得一样

    let item = { id: 10, name: "手机" };
    let id = item.id;
    let name = item.name;
    console.log("id=%d,name=%s", id, name);
    //   ({ id, name } = { id: 5899, name: "手机" });
//输出: id=5899 name=手机

    // { }在js中不能单独放在等号左边 如果需要转表达式 需要加()如下
    ({ id, name } = { id: 7899, name: "平板" });
    console.log("id=%d,name=%s", id, name);
//输出 id=7899 name=平板 

参数解构

数组传参
   let sum = ([a, b]) => a + b;
    console.log(sum([10, 20]));
    // 输出:30
对象传参
    let getUser = ({ name, email }) => [name, email];
    console.log(getUser({ name: "猴子们", email: "10086@163.com" }));
    //利用数组的方式返回
    // 输出:[ 猴子们,10086@163.com ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值