• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Rgzs
博客园    首页    新随笔    联系   管理    订阅  订阅
es6解构赋值

定义:从数组和对象中提取值,对变量进行赋值

1、数组的解构赋值

(1).解构赋值可以嵌套

let [a,[b,c],[d,e]] = [11,[12,13],[14,15]];
    console.log(a,b,c,d,e);//11,12,13,14,15

(2).不完全解构

当左边的模式(你可以理解为格式)与右边不完全一样的时候,那么赋值过程中,只会给模
式匹配成功的部分的变量赋值。

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

(3).赋值不成功,变量的值为undefined

解构不成功,变量的值就等于undefined。相当于只声明了变量c,但是没赋值。

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

2、对象的解构赋值

    总结:1.等号左边是变量名,等号右边不能全是变量名
             2.如何有嵌套格式,只需要左右两侧格式一致即可
             3.等号左边赋值初始值,如果想要拿到初始值,只需要右侧的变量名不匹配即可

(1).解构赋值可以嵌套

// var a = {name:'25',age:10};
    // var {a,b,c} = {'a':{name:'25',age:10},'b':12,"c":3};
    // console.log(a,b,c);

(2).不完全解

当左边的模式(你可以理解为格式)与右边不完全一样的时候,那么赋值过程中,只会给模式匹配成功的部分的变量赋值,

var {a,b,c} = {'a':{name:'25',age:10},'b':12};
    console.log(a,b,c);//{name:'25',age:10} 12 undeifined
3、对象的解构赋值
    // var {a,b,c}={a:{d:'123'},'b':'124',c:'sda'}
    // console.log(a,b,c)
    // var {a,b,c} = {'a':'123','b':23,'c':'asdads'}
    // console.log(a,b,c)
    // let {a:b} = {'b':2};
    // // console.log(a)//not defined
    // console.log(b)//underfimed
    // let{a:b} = {'a':3}
    // console.log(a)//not defined
    // console.log(b)//3

(4).允许设定默认值

var { a, b = 2 } = { 'a': 1}
    console.log(a, b);//1,2

3、字符串的解构赋值

var str = 'tangwen';
    //赋值
    let [a,b,c,d,e,f,g] = str;
    console.log(a,b,c,d,e,f,g);//t a n g w e n
    let [a1,b1,c1,d1,e1,f1,g1] = 'we lcome';
    console.log(a1,b1,c1,d1,e1,f1,g1);//w e   l c o m e
    console.log(d1);//l

 

posted on 2020-08-31 22:40  飄落的葉子  阅读(451)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3