JavaScript——函数定义和参数问题

JavaScript——函数定义和参数获取

函数的定义

函数就是包裹在花括号中的代码块,前面使用了关键词 function

函数声明后不会立即执行,会在我们需要的时候调用到。

定义方式一:

function functionname(){
    
    
    // 执行代码
}

测试:绝对值函数

function abs(x){
    
    
           if(x>=0){
    
    
           return x;
           }else{
    
    
           return -x;
           }
        }
//通过方法名调用函数

一旦执行到return 代表函数结束,返回结果。

如果没有执行return,函数执行完也会返回结果,结果就是Undefined

定义方式二:

JavaScript 函数可以通过一个表达式定义。

函数表达式可以存储在变量(abs)中:

var abs = function(x){
    
    
     if(x>=0){
    
    
           return x;
           }else{
    
    
           return -x;
           }
}

以上函数实际上是一个 匿名函数 (函数没有名称)。

函数存储在变量中,不需要函数名称,通常通过变量名来调用

参数问题

JavaScript 函数对参数的值没有进行任何的检查

解决参数不存在的问题

 var abs = function(x){
    
    
         //手动抛出异常
         if(typeof x!=='number'){
    
    //如果参数的类型不是数字
            throw 'Not a Number';
          }
           if(x>=0){
    
    
           return x;
           }else{
    
    
           return -x;
           }
}
 

在这里插入图片描述

存在多个参数的问题

argumnets对象:arguments 是一个对应于传递给函数的参数的类数组对象

你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。

 var abs = function(x){
    
    
        console.log("x=>"+x)
        for(var i=0;i<arguments.length;i++){
    
    
        console.log(arguments[i]);
        }
           if(x>=0){
    
    
           return x;
           }else{
    
    
           return -x;
           }
}

在这里插入图片描述

拓展

因为arguments包含了所有的参数,调用时只会调用第一个参数,而当我们想要使用其他的参数来进行附加操作时,需要排除已有参数!

方法:

rest(Es6新特性):获取除了已定义参数之外的所有的参数

 function test(a,b,...rest){
    
    
      console.log("a=>"+a);
      console.log("b=>"+b);
     console.log(rest);
    }

在这里插入图片描述

注意:rest只能写在最后面,必须要用…定义

猜你喜欢

转载自blog.csdn.net/wpc2018/article/details/110940548
今日推荐