JavaScript学习-3——数组、函数、递归

本章目录

-----------①数组

-----------②函数

-----------③递归

 

一、数组

弱类型:任何类型数据,且没有强度限制;

强类型:同一类型的数据存储的集合(内存中连续存储),有长度限制。

①创建数组:

//创建新数组
var arr = new Array();
//创建新数组并赋值
var arr = new Array(1,2,3,4,5,6);

②获取,数组的值:

var arr = new Array(1,2,3,4,5,6);
//获取相应序列的值
arr[0];
//序列从0开始,最大为长度-1;
alert(arr[1]);
//获取到数组中序列为1的数据。

  输出结果:

 

③向数组中添加数据:

var arr = new Array(1,2,3,4,5,6);
arr[6]=10;
	
	document.write(arr[6]);

  输出:

	var arr = new Array(1,2,3,4,5,6);
		var d =20;
		for(var i=0;i<arr.length;i++){
				if(d==arr[i]){
						break;
				}
				if(i==arr.length-1){
						arr[i+1]=d;
						document.write(arr[i+1]);
				}
		}
		

  输出:20

 

④输出索引号

var arr = new Array(1,2,3,4,5,6);
	for(var a in arr){
			document.write(a);
	}

  输出结果:

 二、函数

四要素:

返回类型、函数名、参数列表、函数体

强类型语言:

int     NAME  (参数列表)  {  函数体  }

类型      函数名  参数列表    函数体

弱类型语言:

function NAME(参数列表)  {函数体}

//该函数封装完成后不是运行,需要调用
Show();  //调用函数
function Show(){ alert("这是一个简单的函数!!") }

  带有参数的函数

 

//这里的a是一个形参,假的参数(代号)
function(a){
        alert(a);
}
Show("这是一个实参");    //实参,有真正值得参数

function Header(a,b){
        alert(a+","+b)
}
Header(a,b);  //输出两个参数的值
//传两个参数

  有返回值得函数

function Show(a,b){
        return(a+b);
}
var s =Show(1,2);
alert(s);    // 返回3,

三、递归 

 例题:桃子

有一只猴子,每天吃一半桃子,扔一个坏的,第六天还剩一个,问一开始多少桃子?

//前一天数量 = (当前数量+1)*2
var sl =1;
function Show(n){
        //给予第六天的桃子数量,使其只要6则传回1sl
        if(n==6){
            return sl;
            }
        else{
             sl = (Show(n+1)+1)*2;
             //计算公式:昨天的=[(今天天数+1)+1]*2
                }
        return sl;
}       
alert(Show(1));        

 例题:阶乘

 

<script>
    var n =prompt("请输入:","");
    function Show(n){
            //我们知道当n!,n=1或0的的时候阶乘为1;
            if(n<1){
                    return 1;
            }
            //n!  =  (n-1)*n
            else{
                    return Show(n-1)*n;
            }
    }
alert(Show(n));
</script>

 

当输入6时获得的结果:

是正确的。

例题、一共10级楼梯,每次可以走一步或两步,求一共多少种走法。

<script>
    //一共10级楼梯,每次可以走一步或两步,求一共多少种走法。
    function Show(n){
            //第一阶有一种方法
            if(n==1){
                    return 1;
            }
            //第二阶有两种方法:1+1    2
            else if(n==2){
                    return 2;
            }
            //当前阶 = 上一阶的方法 + 前一阶的方法
            else{
                    return Show(n-1)+Show(n-2);
            }
    }
    console.log(Show(10));
</script>

 

输出结果:

正确

 

posted @ 2018-01-22 15:57  刘半封  Views(172)  Comments(0Edit  收藏  举报