js解构赋值

解构赋值中常见的报错:

        const arr = ["zhangsan",18,"c"]

        let [name,age,grade] = arr; //name:"zhangsan"   age:18  grade:"c"

        let [a,b,c,d] = arr  //a:"zhangsan"   b:18  c:"c"   d:undefined

        [a,b,c,d] = arr  

会报错如下图,报错原因是因为缺少;

 这种报错在[]、()开头的时候会出现,主要是因为解释器为代码添加;的时候出错,解决办法是在[]、()开头代码前添加;

;[a,b,c,d] = arr  即可

数组的解构赋值用法

(1)可以采用...的方式将参数存储在数组中

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

(2)设置默认值

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

(3)数值交换

        //解构赋值
        let name = "zhangsan", describe="hello";
        [name, describe] = [describe, name]
        console.log(name, describe) //hello zhangsan

其中左侧[name, describe] 代表着解构赋值需要赋值的变量,右侧是一个数组,有两个元素,第一个元素值为“hello”,第二个元素值为“zhangsan”

对象的解构赋值

(1)变量标识需要跟对象的属性保持一致

        let obj = {
            name: "zhangsan",
            age: 18
        }
        let { name, age, grade } = obj ;//声明变量同时解构赋值
        console.log(name, age, grade);//zhangsan 18 undefined    没有的属性返回undefined

(2)设置别名

        let { name:a, age:b } = obj
        console.log(a,b); //zhangsan 18

(3)设置默认值

        let { name:a, age:b, grade:c="默认值" } = obj //声明变量同时解构赋值
        console.log(a,b,c); //zhangsan 18 默认值

(4)报错

        let { name:a, age:b, grade:c="默认值" } = obj;
        { name:a, age:b, grade:c="默认值" } = obj; //Uncaught SyntaxError: Unexpected token ':' 

报错的原因是因为 {} 开头,js解释器会自动把它当作是代码块,需要用括号括起来即可

        ({ name:a, age:b, grade:c="默认值" } = obj); 
        console.log(a,b,c); //zhangsan 18 默认值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值