Day 26 function函数

九、函数

定义:

(耦合代码:重复、低效  编程要高内聚  弱耦合)  

1、函数声明:

-------

function 函数名(){函数体

};

函数名();   执行,出现几次执行几次

-------

2、函数表达式:

(1)第一种:函数声明

(2)命名函数表达式

-------

var test =function abc(){

};

test();                   表达式忽略名字  abc没用    但test.name 是abc

--------

(3)匿名函数表达式---函数表达式  常用

--------

var test =function (){

};                         函数名是匿名的,函数名是test

--------

3、组成形式:

---------

function 函数名(){函数体};

函数名();

---------

a.函数名称:

函数名起名方式:跟变量名类似

开发规范:函数名和变量名由复合单词组成需符合 "小驼峰原则"  

theFirstName  第一个单词首字母小写  后面首字母大写

b.参数:不定参,可形参多,可实参多  不会报错

     

---------

function test(a,b){               形式参数:

  document.write(a+b);

}

test(1,2);       执行结果为3   实际参数

test(3,4);       执行结果为7   实际参数

---------     

(在每一个函数中,有一个隐式的arguments,类似数组,叫做实参列表

  映射规则:不是同一个,但一个变另一个也跟着变)  

例1:实参多于形参时,将实参全部打印出来

function sum(a){

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

      console.log(arguments[i]);

    }

}         

sum(11,2,3);

---------

例2:形参多于实参时,将形参全部打印出来

function sum(a,b,c,d){

  if(sum.length > arguments.length){

    console.log('形参多了');

  }else if(sum.length < arguments.length){

    console.log('实参多了');  

  }else{

    console.log('相等');

  }

}

 sum(11,2,3);

---------

例3:任意实参求和

function sum(){

  var result = 0 ;

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

    result += arguments[i];

  }

  console.log(result);

}

sum(1,2,3,4,5,6);

c.返回值:return 

功能:

 终止函数

 返回值   

 -----------

 function sum(){

   return 123;

 }

 var num = sum();

 -------------

 function myNumber(target){

      return +target;

 }

 var num = myNumber('123');

 console.log(typeof(num));

 --------------

 练习:

1、 写一个函数,功能是告知你所选定的小动物的叫声。

function voice(animal){

    switch(animal){

      case "dog" :

         document.write('wang');

      case "cat" ;

         document.write('miao');   

    }

}

2、写一个函数,实现加法计数器 

function sum() {

  var number = 0;

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

    number += arguments[i];

  }

  console.log(number);

}

sum(1, 2, 3);

3、定义一组数字,输入数字,逆转并输出汉字形式

function reverse() {

  var num = window.prompt("input");

  var str = "";

  for (var i = num.length - 1; i >= 0; i--) {

    str += transfer(num[i]);

  }

  document.write(str);

}

function transfer(target) {

  switch (target) {

    case "1":

      return "壹";

    case "2":

      return "贰";

    case "3":

      return "三";

  }

}

4、写一个函数,实现n的阶乘

递归...找规律 找出口

----------------

function jc(n){

   if(n == 1){

      return 1;

   }

   return n * jc(n-1)

}

-----------------

function reverse() {

  var n = window.prompt("input");

  var num = 1;

  for (var i = 1; i <= n; i++) {

    num *= i;

  }

  document.write(num);

}

5、写一个函数,实现斐波那契数列

function reverse() {

  var n = parseInt(window.prompt("数列"));

  var first = 1,

    second = 1,

    third;

  if (n > 2) {

    for (var i = 0; i < n - 2; i++) {

      third = first + second;

      first = second;

      second = third;

    }

    document.write(third);

  } else {

    document.write(1);

  }

}

------------------------------------

递归方法:

function fb(n){

  if (n == 1 || n ==2){

    return 1;

  }

  return fb(n - 1) + fb(n - 2);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值