js基础知识(二十三)--解构赋值、箭头函数、闭包

本文深入探讨JavaScript的高级特性,包括解构赋值的三种用法,如何使用箭头函数简化代码并理解其this行为,以及闭包的概念、构成要件和生命周期。通过实例解析,展示了这些特性在实际编程中的应用。

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

六、解构赋值
1.将数组中的元素赋值给变量
let [变量1,变量2…变量n]=数组
2.将数组中的元素拆分作为参数传递
fn(…数组)
3.对对象的解构Object
let {变量1,变量2}=对象
*/
let arr = [1, 2, 3, 4, 5, 6, 7];
let [a, b, …c] = arr;
console.log(a);//1
console.log(b);//2
console.log©;
// 交换位置
[arr[1], arr[2]] = [arr[2], arr[1]]
console.log(arr);//两个元素交换了位置

    function sum(a, b, c) {
        return a + b + c;
    }
    let arr2 = [123, 456, 789];
    console.log(sum(...arr2));//对数组的解构赋值,把里面的元素拆出来了,元素作为参数去赋值 

    let obj = { name: 'swk', age: 18, gender: '男' };
    let { name, age, gender } = obj;
    console.log(name, age, gender);

七、箭头函数
语法:
(xxx,ccc)=>返回值
参数=>返回值
(xxx,ccc)=>{
语句…
}
注意:箭头函数中的this在函数创建时就已确定,由它的外层函数(作用域)的this来决定,外层的this是谁,它的this就是谁

    // function sum(a, b) {
    //     return a + b;
    // }
    // 等价于上面的函数,这样简洁的就称为箭头函数
    let sum = (a, b) => a + b;
    console.log(sum(123, 456));
    let arr = ['孙悟空', '猪八戒', '沙和尚'];
    // 回调函数
    // arr.forEach(function (element) {
    //     console.log(element);
    // })
    // 箭头函数
    arr.forEach(element => console.log(element));

    // 排序中运用箭头函数
    let arr2 = [3, 4, 1, 2, 5];
    arr2.sort((a, b) => a - b);
    // 函数形式
    let sum2 = (a, b) => {
        console.log('hello');
        console.log('你好');
        return a + b;
    };
    console.log(sum2(132, 456));

八、闭包
闭包:闭包就是能访问到外部函数中变量的内部函数(闭包是个函数)
闭包主要用来藏起一些不希望被别人看到的东西
闭包构成的要件:
1.闭包必须有函数的嵌套
2.内部函数必须要访问外部函数的变量
3.必须将内部函数作为返回值返回
闭包的生命周期:当外部函数调用时,闭包便产生了,外部函数每调用一次就会产生一个闭包,当内部函数被垃圾回收时,闭包就会销毁

    //函数的嵌套    
    // function outer() {
    //     // 定义一个变量,记录函数执行的次数
    //     let times = 0;
    //     // times只能被fn所看到

    //     // 这里inner将相当于一个闭包,times只能inner访问到,而且times属于外部函数的变量
    //     function inner() {
    //         // 创建一个函数,函数每次调用时,都会打印函数被调用的次数
    //         times++;
    //         alert(times);
    //     }
    //     // 将inner设置为函数的返回值
    //     return inner;
    // }
    // let fn = outer();
    // fn();
    // fn();

    // 改进,利用立即执行函数,直接return回去,只会执行一次用完就销毁
    let fn4 = (function () {
        let times = 0;
        return function () {
            alert(++times);
        };
    })();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值