美文网首页
结构赋值

结构赋值

作者: 北方有嘉木24 | 来源:发表于2019-12-29 12:17 被阅读0次

数组的结构赋值

按顺序排列,取值由位置决定

    let [a, b, c] = [1, 2, 3]
    a //1
    b //2
    c //3
    let  [x, y, ...z] = ['a'];
    x // a
    y //undefined 结构不成功
    z //[]
    let [e, f, g] = [1, [2, 3], 4];
    e //1
    f //2 不完全结构
    g //4
    let [foo] = 1;//报错,右边等号的值或者转为对象以后必须具备Iterator接口
    let [f = true] = [];
    f //true 默认值

对象的机构赋值

变量名与属性名必须相同才能取值,先找到同名属性,在赋值给对应的变量,真正被复制的是变量

    let {bar, foo} = {
        foo: "aaa",
        bar: "bbb"
    };
    bar //bbb
    foo //aaa
    let baz = {
        foo: "aaa",
        bar: "bbb"
    };
    baz //undefined
    var {foo: baz} = {
        foo: "aaa",
        bar: "bbb"
    };
    baz // aaa

嵌套赋值

    let obj = {
        p: [
            "hello",
            {y: 'world'}
        ]
    };
    let {p: [x, {y}]} = obj;
    x //hello
    y //world
    let {p, {p: [x, {y}]}} = obj;
    x //hello
    y //world
    p //["hello", {y: "world"}]

默认赋值

必须严格等于undefined,结构赋值失败值等于undefined

其他

子串会被解析为一个类数组

    let [a, c] = "ad";
    a //"a"
    c //"d"

布尔与数字的结构赋值

等号做组边是数字或者布尔是,会先转换为对象。null和undefined无法转换为对象,报错

    let {to: s} = 123;
    s// undefined Number 沒有to方法
    let {toString: ss} = 123;
    ss //toString() { [native code] }
    //ss === Number.prototype.toString true
    // s === Number.prototype.toString false
    let {prop: x} = undefined; // TypeError

用途

1、交互变量

    let x = 1, y = 2;
    [x, y] === [y, x];
    x //2
    y //1

2、读取函数返回值

    function fn(){
        return [1, 2, 3];
    }
    let [a, b, c] = fn();
    function fn1(){
        return {
            foo: 1,
            bar: 2
        }
    }
    let {foo, bar} = fn1();
    foo //1
    bar //2

相关文章

  • ES6语法--解构赋值

    什么是解构赋值? 左边一种结构,右面一种结构,左右分别赋值。 分类: 数组解构赋值,对象结构赋值,字符串解构赋值,...

  • 结构赋值

    具体参照阮一峰老师EcmaScript6入门http://es6.ruanyifeng.com/#docs/des...

  • 结构赋值

    数组的结构赋值 按顺序排列,取值由位置决定 对象的机构赋值 变量名与属性名必须相同才能取值,先找到同名属性,在赋值...

  • 结构赋值

    结构的前提是 a = b 的时候 b 里面要有a 这个属性 const{body}={ body:[ {group...

  • jquery与dom结构的赋值

    jquery的赋值 dom结构的赋值

  • [结构赋值-01]数组的结构赋值

    解构赋值语法是一个Javascript表达式,这使得可以将值从数组或属性从对象提取到不同的变量中 —— MDN 我...

  • C中的结构体

    C语言的结构体生成以及赋值方法,打点调用,以及->调用 赋值总结:如何取出以及赋值结构体中的成员变量1.结构体变量...

  • 解构赋值

    1 数组的解构赋值 2 对象的解构赋值 3 奇葩结构的解构赋值 对于数组而言 最要两边结构相同也适用解构赋值

  • [解构赋值-02] 对象的解构赋值

    对象的结构赋值与数组的结构赋值相似,等号左右两边都为对象结构 const {a,b} = {a:1,b:2}, ...

  • ES6变量的结构赋值19-10-16

    1.理解:从对象或数组中提取数据,并赋值给变量(多个) 1.对象的结构赋值 2.数组的结构赋值

网友评论

      本文标题:结构赋值

      本文链接:https://www.haomeiwen.com/subject/hkryoctx.html