欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript函数方法定义、组成形式讲解

程序员文章站 2022-06-30 14:37:15
1、定义:      函数声明     关键字 function  函数名 test  () ...

1、定义:

     函数声明

    关键字 function  函数名 test  ()   { 代码体 }

    函数名称 多个单词拼接时 小驼峰原则:第一个单词首字母小写,往后每个单词首字母大写

   function theFirstName(){

  }

   函数表达式

   var test = function test (){         可简化为: 匿名函数表达式   var test = function(){}   

    }   

函数都有个name的属性。

console.log(test.name)  ==>  test

命名函数表达式

var test = fucntion demo(){}   在后边这种情况下function demo(){} 充当表达式,此时demo没有任何实际意义,可以不写。

console.log(test.name)  ==>  demo

由于匿名函数表达式比较常用,因此简化为函数表达式  ,所以称函数表达式时,通常说的是匿名函数表达式。

2、函数组成形式

函数名称  

参数 (使函数变得强大)

function test (a, b){}  函数参数就相当于隐式的在函数体中声明了两个变量 ,没有赋值。在函数申明时占位的参数成为 形式参数

test(1,2)  在函数执行时可以通过传参数给对应的变量赋值。  在函数执行时传递的参数成为实参。

js方法中不定参数(注意查下es5与es6区别)

function test (a){

   //arguments--[11, 2, 3]    //实参列表,无论形参有没有,实参都是有地方存储。

   console.log(arguments);

   console.log(arguments.length);   //实参的长度

   console.log(test.length);   //形参的长度

   for(var i = 0;i<arguments.length;i++){

            console.log(arguments[i]);   // 得到实参的每一位

    }

    console.log(a);

}

test(1,2,3)   == >    [11, 2 , 3]    3   1     1   //实参可以比形参多,也可以比形参少。

即使实参比形参个数少,但是依旧可以在函数中存放,并获取。在js的函数中都会有一个隐式的存储实参的类似数组的 arguments ---[]

利用实参列表求任意个数求和

function sum(){

  var result= 0;   

   for(var i = 0;i<arguments.length;i++){

            result += arguments[i];

            console.log(arguments[i]);   // 得到实参的每一位

    }

     console.log(result);

}

sum( 10 ,12 , 15, ......)   

扩展:

function test ( a, b){

   // 既然arguments中的存储的是不是同一个变量?

    a = 2;

    console.log(arguments[0]);   ==> 2   

    arguments[0] =3;  

     console.log( a);   ==> 3    

      //结论:本身在js中只有引用值才能,操作一个,改变另一个的,显然arguments[0] 和a 的值都是一个原始值。

         但是,arguments[0] 和 a 不是同一个变量,在js中这两个之间存在一个映射规则。

}

test(1, 2)

特殊情况:

function sum(a, b){

   b = 2 ;

   console.log(arguments[1]);   == >   ?     答案为: undefined

    //实参列表在仅在实参和形参有对应的时候,才会有映射规则。

}

sum(1)

函数的终止条件和返回值

 return; ==> 作用: 终止函数和返回函数值。

function test(){

    return 123;

}

var num = test (); ==>  123