ES6解构赋值及用途

本文详细介绍了ES6中的解构赋值特性,包括数组和对象的解构,以及解构赋值在变量声明、参数传递、简化代码等方面的实际用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、ES6解构赋值

1.数组解构赋值
    数组结构赋值
    let a=1,b=2,c=3
    let [a,b,c]=[1,2,3]

2.定义默认值
    let [a,b=3]=[4]

3.对象解构赋值
    let {a,b}={a:5,b:6}

    let obj = {
        p: [
            'Hello',
            { y: 'World' }
            ]
                };
    let { p: [x, { y }] } = obj;

    var {a,b:{a:a1}}={a:5,b:{a:6}};
        console.log(a,a1);

    (1)对象解构赋值是按照属性名解构,和顺序无关
    (2)没有该属性是无法解构赋值
    (3)对象解构必须按照结构解构
    (4)如果解构是属性名有重复,可以在属性名使用:新名称来解构
4.字符串的解构赋值
    let [a,b,c,d,e]="abcde"
    let {length : len} = 'hello'

5.数值和布尔值的解构赋值
    let {toString: s} = 123;
    let {toString: s} = true;
    解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。由于undefined和null无法转为对象,所以对它们进行解构赋值,都会报错。
6.函数参数的解构赋值
    function add([x, y]){
        return x + y;
    }

    add([1, 2]);
    
    使用解构赋值让函数具有默认值
	function move({x = 0, y = 0} = {}) {
    return [x, y];
    }
7.解构赋值尽量不要使用小括号

二、解构赋值的用途

1.交换变量
	(1)let x=2;
        let y=3; 
        [x,y]=[y,x]
    (2)if(arr[i]>arr[i+1]){
      [arr[i],arr[i+1]]=[arr[i+1],arr[i]];
     }
2.从函数返回多个值
	function example() {
        return [1, 2, 3];
        }
    let [a, b, c] = example();
3.函数参数的定义
	function f({x, y, z}) { ... }
    f({z: 3, y: 2, x: 1});
4.提取 JSON 数据
	let jsonData = {
        id: 42,
        status: "OK",
        data: [867, 5309]
        };

	let { id, status, data: number } = jsonData;
5.函数参数的默认值
	(1)function move({x = 0, y = 0} = {}) {
        return [x, y];
        }
    (2)function fn(a,b=4){
        console.log(a,b);
        }
        fn(3,5);//打印3,5。其中,5将出默认值4覆盖
        fn(3);//打印3,4。其中,b具有默认值4
6.输入模块的指定方法
	const { SourceMapConsumer, SourceNode } = require("source-map");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值