zoukankan      html  css  js  c++  java
  • 【JavaScript】解构赋值

    以下内容为学习记录,可以参考 MDN 原文。

    环境

    • node v12.18.1
    • npm 6.14.5
    • vscode 1.46
    • Microsoft Edge 83

    概念

    解构赋值语法是一种 Javascript 表达式。通过解构赋值,可以将属性值从对象数组中取出,赋值给其他变量。

    示例

    let a, b, rest;
    [a, b] = [10, 20];
    
    console.log(a);
    // expected output: 10
    
    console.log(b);
    // expected output: 20
    
    [a, b, ...rest] = [10, 20, 30, 40, 50];
    
    console.log(rest);
    // expected output: Array [30,40,50]
    

    解构数组

    变量声明并赋值时的解构

    var foo = ["one", "two", "three"];
    
    var [one, two, three] = foo;
    console.log(one); // "one"
    console.log(two); // "two"
    console.log(three); // "three"
    

    变量先声明后赋值时的解构

    var a, b;
    
    [a, b] = [1, 2];
    console.log(a); // 1
    console.log(b); // 2
    

    数组默认值

    var a, b;
    
    [a=5, b=7] = [1];
    console.log(a); // 1
    console.log(b); // 7
    

    交换变量

    var a = 1;
    var b = 3;
    
    [a, b] = [b, a];
    console.log(a); // 3
    console.log(b); // 1
    

    忽略某些返回值

    function f() {
      return [1, 2, 3];
    }
    
    var [a, , b] = f();
    console.log(a); // 1
    console.log(b); // 3
    

    将剩余数组赋值给一个变量

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

    解构对象

    基本赋值

    var o = {p: 42, q: true};
    var {p, q} = o;
    
    console.log(p); // 42
    console.log(q); // true
    

    无声明赋值

    var a, b;
    
    ({a, b} = {a: 1, b: 2});
    

    给新的变量名赋值

    可以从一个对象中提取变量并赋值给和对象属性名不同的新的变量名。

    var o = {p: 42, q: true};
    var {p: foo, q: bar} = o;
     
    console.log(foo); // 42 
    console.log(bar); // true 
    

    对象默认值

    var {a = 10, b = 5} = {a: 3};
    
    console.log(a); // 3
    console.log(b); // 5
    

    给新的变量命名并提供默认值

    var {a:aa = 10, b:bb = 5} = {a: 3};
    
    console.log(aa); // 3
    console.log(bb); // 5
    
  • 相关阅读:
    关于input输入框placeholder属性的样式问题
    关于input输入框checkbox类型的样式问题
    三层构架
    盒模型
    line height
    sql
    继承
    对象
    正则表达式
    事件
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/13703056.html
Copyright © 2011-2022 走看看