GBX

在JS中,可能会定义很多相同的或者类似功能的代码,或者需要重复使用大量的相同的代码,此时我们就可以使用JS函数。

函数:就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用

函数的使用:

  • 声明函数

function 函数名() {
    //函数体代码
}
    • function 是声明函数的关键字,要小写 
    • 函数名要语义化,函数一般都是为了实现某个功能而定义的,比如,求和:getsum,判断质数:isPrimeNumbers
  • 调用函数

函数名();  // 通过调用函数名来执行函数体代码
    • 调用的时候千万不要忘记添加小括号(个别特殊情况不加())

    • 声明函数本身并不会执行代码,只有调用函数时才会执行函数体代码
    • 调用函数的代码既可以放到声明函数的前面,也可以放在声明函数的后面
  • 函数的另一种声明方式

var fn = function(){...};
// 调用的方式,函数调用必须写到函数体下面
fn();
    • 因为函数没有名字,所以也被称为匿名函数
    • fn 里面存储的是一个函数
    • 函数表达式方式原理跟声明变量方式是一致的
    • 函数调用的代码必须写到函数体后面

函数的封装:

  • 函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口
    • 例如:封装求1-50的累加
    • function getSum(){
        var sumNum = 0;// 准备一个变量,保存数字和
        for (var i = 1; i <= 50; i++) {
          sumNum += i;// 把每个数值 都累加 到变量中
        }
        console.log(sumNum);
      }
      // 调用函数
      getSum();

函数的参数:

  • :函数定义时设置接收调用时传入

  • :函数调用时传入小括号内的真实数据

  参数的作用:在函数中某些不能固定的值,我们可以通过调用函数是传入不同的参数,是函数更加灵活。 

  带参函数的声明:

// 带参数的函数声明
function 函数名(形参1, 形参2 , 形参3...) { // 可以定义任意多的参数,用逗号分隔
  // 函数体
}
// 带参数的函数调用
函数名(实参1, 实参2, 实参3...);

  例如:求1-N的累加

function getSum(n/*接受实参100赋值给n*/){
  var sumNum = 0;
  for (var i = 1; i <= n; i++) {
    sumNum += i;
  }
  alert(sumNum);
}
// 调用函数
getSum(100);//传入实参100

 

函数的实参与形参不匹配的情况:

  • 实参个数多于形参:  只取到形参个数
    •         function fn (a,b,c){
                  console.log(a,b,c);// 结果为 1 2 3 因为没有容器来装第四个值
                  console.log(arguments.length);//结果为 4 所以第四个值是存在的
                  console.log(arguments[3]);// 结果为 5  可以取到第四个值
                  return a+b+c;
      
              }
              console.log(fn(1,2,3,5))

       

        
  • 实参个数小于形参:  多的形参定义为undefined,结果为NaN
    •  
              function fn (a,b,c){
                  console.log(a,b,c);  //打印的值为 1 2 undefined
                  return a+b+c;  //返回的值为 NaN = 1 + 2 + undefined 
              }
              console.log(fn(1,2));

       

       

函数的返回值:

  • return 语句

    • 函数执行完毕得到的数据,通过return语句将指定的值返回
    • function 函数名(){
          ...
          return  需要返回的值;
      }
      // 调用函数
      函数名();    // 此时调用函数就可以得到函数体内return 后面的值
    • 在执行 return 语句时,函数会停止执行,并返回指定的值   

    • 如果函数没有 return ,返回的值是 undefined

arguments的使用

  当不确定有多少个参数传递的时候,可以用 arguments 来获取,它是当前函数的一个内置对象。所有函数都内置了一个 arguments 对象,arguments 对象中存储了传递的所有实参。arguments展示形式是一个伪数组,因此可以进行遍历

  • 具有 length 属性
  • 按索引方式储存数据
  • 不具有数组的 push , pop 等方法
  • 必须在函数内部使用
    •     function fn () {
           var length = arguments.length;
           var n =  arguments[1];
           console.log(length+','+n);//打印的结果是 5,2
      }
          fn(1,2,3,4,5);    

       

posted on 2020-03-22 11:07  GBX  阅读(146)  评论(0)    收藏  举报