学习记录——ES6语法(3):箭头函数、剩余参数

本文详细介绍了ES6中的箭头函数用法,包括如何定义及使用,强调了箭头函数不绑定`this`的特性。同时,文章探讨了剩余参数的概念,说明了它如何帮助开发者处理不定数量的参数,并提到了与解构赋值的结合应用。

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

箭头函数

ES6中新增的定义函数的语法 () => { }

    //箭头函数是用来简化函数定义语法的 ()=>{}
    const fn = () => {
        console.log(123);
    }
    fn(); //123

函数体中只有一句代码,且代码的执行结果就是函数的返回值,函数体大括号{ }可以省略。

    //函数体中只有一句代码,且代码的执行结果就是函数的返回值,可以省略大括号
    function sum(num1, num2) {
        return num1 + num2;
    }
    const sum = (num1, num2) => num1 + num2;
    const result = sum(10, 20);
    console.log(result);

在箭头函数中 如果形参只有一个 形参外侧的小括号也是可以省略的。

 const fn = v => alert(v);
    fn(20);

箭头函数不绑定this 箭头函数没有自己的this关键字。
如果在箭头函数中使用this,this关键字将指向箭头函数定义位置中的this。

    //箭头函数不绑定this 箭头函数没有自己的this关键字 
    //如果在箭头函数中使用this
    //this关键字将指向箭头函数定义位置中的this
    const obj = {
        name: '张三'
    }

    function fn() {
        console.log(this);//{name: "张三"}
        return () => {
            console.log(this);//{name: "张三"}
        }
    }
    const resFn = fn.call(obj);//resFn 相当于 上面代码 匿名函数的名字
    resFn();
    var age = 100;
    var obj = {
        age: 20,
        say: () => {
            alert(this.age); //undefined
        }
    }
    obj.say();
    
    箭头函数没有自己的this,箭头函数当中的this指向箭头函数定义区域的 this
    当前箭头函数定义在了obj这个对象里面,但是obj是个对象,不能产生作用域,
    所以箭头函数实际定义在了全局作用域,所以当我们使用say方法的时候this指向的是window
    window下面没有age属性 所以是undefined
    

剩余参数

这个语法允许我们将一个不定数量的参数表示为一个数组。

function sum(first,...args){
	console.log(first); // 10
	console.log(args); // [20, 30]
}
sum(10, 20, 30)
const sum = (...args) => {
	let total = 0;
	args.forEach(item => total += item);
	return total;
}
console.log(sum(10, 20)); //30

console.log(sum(10, 20, 30)); //60

剩余参数和解构配合使用:

    let students = ['wangwu', 'zhangsn', 'lisi'];
    let [s1, ...s2] = students;
    console.log(s1); //wangwu
    console.log(s2); //["zhangsn", "lisi"]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值