JavaScript 函数详解

119 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第 8 天,点击查看活动详情

它是一个对象。要执行一个函数,您将调用它,也称为调用函数。您还可以将值传递给函数以在函数中使用。事实上,函数总是会返回一个值。因此,如果您不指定返回值, JavaScript函数将返回 undefined

总而言之,JavaScript 函数是一个对象。它是子程序的一部分,其目标是完成一种特定类型的任务。

函数定义

使用关键字 function 定义函数。

    function 函数名(参数列表){
        函数体
        return ;
    }

函数声明后不会立即执行,会在我们需要的时候调用到。 这里需要注意几点:

  • 参数:一定不要带数据类型;
  • 分号是用来分隔可执行JavaScript语句。 由于函数声明不是一个可执行语句,所以不以分号结束。

如何使用函数,非常简单,例如,实现 1+5。

   function sum(a,b){
            return a+b;
        }
    console.log(sum(1,5));

image.png

知道定义函数和使用之后,接下往下看。

有返回值

这个非常好理解,就是通过调用该函数之后,给我们返回结果。例如,4 X 8。

 function sum(a,b){
            return a*b;
        }
     var result=sum(4,8);
    console.log(result);

image.png

无返回值

函数无返回值恰好与有返回值相反,在调用函数之后,不会给我们返回结果。例如,4 X 8。

 function sum(a,b){
            console.log(a*8);
        }
     var result=sum(4,8);
    console.log("无返回值:"+result);

image.png

从这个执行结果,就更明白有返回值和无返回值区别。

函数内部属性

arguments: 是一个类数组,用来保存函数传递过来的参数。arguments 中还有一个很重要的属性就是 callee,是一个指针变量,指向的是 arguments所在的函数本身,在递归的时候最好用这个属性,因为如果函数名改变了,也不需要改变内部的实现,arguments.callee()始终代表的是这个函数本身。

this :这个属性代表的是它所在的对象本身,this 引用的是函数据以执行的环境对象,也就是函数执行的作用域。

构造函数

函数同样可以通过内置的 JavaScript 函数构造器(Function())定义。

var myFunction = new Function("a", "b", "return a * b");
    var x = myFunction(4, 3);
    console.log(x);

上述函数以分号结尾,因为它是一个执行语句。

image.png

匿名函数

没有函数名称函数称为匿名函数。

   var fn = function(a, b) {// 没有名字的函数,应该用一个变量来接收
        return a * 10 + b;
    };
    console.log( fn(3, 4) );

image.png