JavaScript中的函数中arguments、参数、默认值和表达式以及箭头函数

  • 箭头函数:

箭头函数虽然语法简洁、但也有很多场合不适用。箭头函数不能使用argumentssupernew.target,也不能用作构造函数。此外箭头函数也没有prototype属性。

1. 函数中的arguments

arguments对象是一个类数组对象,因此可以使用中括号语法访问其中的元素。而要确定传进来多少个参数们可以访问arguments.length属性。

 function say(name,message){
            console.log(arguments[0]);
            console.log(arguments[1]);
            console.log(arguments.length);
        }
        say('maria','这是一条信息')

在这里插入图片描述

arguments对象的值始终会与对应的命名参数同步。

  • 在函数内部修改arguments的值,调用函数的时候值已经改变了其实
        function doAdd(name ,age){
            arguments[1]=22
            console.log(arguments[0]);//lisa
            console.log(arguments[1]);//22
        }
        doAdd('lisa',66)

对于命名参数而言、如果调用函数时没有传这个参数,那么它的值就是undefined。这就类似于定义了变量而没有初始化。

2. 箭头函数中的参数

箭头函数中的参数不能使用arguments关键字访问,而只能通过定义的命名参数访问。但可以包装在函数中把它提供给箭头函数。

        let arrow=()=>{
            console.log(arguments[0]);
        }
        arrow()

在这里插入图片描述

3. 函数赋默认值

  1. es5之前,实现默认参数的一种常用方式就是检测某个参数是否等于undefined,如果是则意味着没有传这个参数直接给它赋值就行。
  2. 但是es6之后,支持显式定义默认参数了,只要在函数定义中的参数后面用=就可以为参数赋一个默认值了。
       function test(name){
            if(name==undefined){
                name='这是默认值'
            }
            console.log(name);
        }
        test()
  • 这一种更好用点
        function test1(name='第二种直接在这设置默认值'){
            console.log(name);
        }
        test1()

在这里插入图片描述

4. 函数表达式

定义函数的两种方式:函数声明和函数表达式:

  1. 函数声明的关键特点是函数声明提升,函数声明会在代码执行之前获得定义。
  2. 函数表达式即创建一个函数再把它赋值给一个变量。

这样创建的函数叫做匿名函数,其中匿名函数中的this指向的是window,要去另一篇文章this指向

  • 函数声明:
        // 函数声明
        sayHi() //函数声明的特点就是函数声明提升了
        function sayHi(){
            console.log('say hi brother');
        }
  • 函数表达式:
        // 函数表达式
        sayNo()

        let sayNo=function(){
            console.log('say no');
        }
  • 函数表达式没有声明提升,这样会报错的。
    在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值