第四章 函数

本文深入讲解JavaScript函数的特点,包括函数作为一等公民的地位、作用域、数据类型特性、返回值处理、参数使用及不定参数的应用,并通过实例展示了递归调用和函数内部参数的有效管理。

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

函数
  1. 在js中函数是“一等公民”
  2. 函数是一个独立的作用域
  3. 函数是一种数据类型,与其他类型一样;特殊在可以执行

return 返回值
function xq(){
    var a = 1;
    alert(a);
}//定义一个函数 弹出a的值
xq();//执行这个函数 弹出1
alert(xq());//弹出1和undefined
  1. 任何一个函数 当没有定义返回值的时候 有个默认的返回值 undefined
  2. 不是所有函数都需要返回值
  3. return 可以终止函数的执行

参数
在函数定义的时候 可以写形参;在函数调用的时候写相应的实参。
函数可以有多个参数 参数的数据类型是任意的

形参个数>实参个数(调用时传递少了) 那么多余的形参就会被undefined代替
形参<实参个数(调用时传递多了),那么多余的将会被忽略

不定参数
JS中没有函数重载这个概念 参数由一个类似数组的形参传递的
利用arguments对象可以实现类似函数重载的效果
用法:判断arguments的长度

 function zhenjiang(){
       var len = arguments.length;
        for(var i=0;i<len;i++){
            if(1==len){//如果是一个参数 那么就输出本身
                console.log(arguments[0]);
            }else if(2==len){//如果是两个参数 那么就输出两者乘积
                console.log(arguments[0] * arguments[1]);
            }else if(3==len){//如果是三个参数 那么就输出三者的和
                console.log(arguments[0] + arguments[1] + arguments[2]);
                }
            }
      };
      zhenjiang(1);//一个实参
      zhenjiang(1,2);//两个实参
      zhenjiang(1,2,3);//三个实参

arguments.callee
callee是arguments的一个属性 它可以用于引用函数体当前正在执行的函数 这个函数的名称未知时候很有用(匿名函数)【类似就近原则】

function jiecheng(num){
        if(num==1) return 1;
        //return num * jiecheng(num-1);//正常的书写方式 递归调用
        return num * arguments.callee(num-1);
     }
     var result = jiecheng(5);
     alert(result);//弹出120
function zhenjiang(a,b){
        if(arguments.length == arguments.callee.length){
            //判断实参和形参的个数是否匹配
            alert("输入合法");
        }else{
            alert("输入的参数个数与函数参数个数不匹配");
        }
     }
     zhenjiang(1,2);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值