解构赋值

数组的解构赋值

  • 如果匹配不到,则变量是undefined
  • 如果等号右边不是数组(不可遍历的结构一包括对象),报错
{
    let arr = [10,20,30]
    let [a,b,c] = arr;
    console.log(a,b,c) //10,20,30
}
{
    /**默认值 */
    let [a=true] = [];
    console.log(a) //true
}
{
    /*数组解构赋值 */
    let [a,b,...c] = [1,2,3,4,5,6,7]
    console.log(a) //1
    console.log(b) //2
    console.log(c) //[3,4,5,6,7]
}

对象的解构赋值

如果匹配不到,则变量是Undefined

{
    let {aoo:ooo} = {aoo:'aaa',brr:'bbb'}
    //aoo是匹配模式
    //ooo是变量
    console.log(ooo) //aaa
}
{
    /**模式匹配用例 */
    let obj ={
        arr:[
            '111',
            {brr:222}
        ]
    };
    let {arr,arr:[x,{brr}]} = obj
    console.log(arr,x,brr) 
}
{
    /**默认值生效的条件是,对象的属性值严格等于undefined*/
    let {a=true} = {a:undefined}
    console.log(a) //true
}

字符串解构赋值

类似于数组的对象都有一个length属性,可以对这个属性解构赋值

{
    let [a,b,c] = "hello"
    console.log(a,b,c); // h e l
    let {length:len} = "hello"
    console.log(len) //5
}

数值和布尔值的解构赋值

如果等号右边是数值和布尔值,则会先转为对象

{
    let {toString:s} = 123
    console.log(s)
}

函数的解构赋值

应用场景

{
    function test (){
        return [1,2]
    }
    let a,b;
    [a,b] = test()
    console.log(a,b)
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇