【php基础班】第11天 复习、二维数组、数组方法、字符串对象、Math对象、date对象

第一节 复习

1.函数

函数的定义:

function函数名(形式参数1,形式参数2,。。。。。。){//函数体 return}

参数:参数的形式必须一一对应,而且,在定义的时候那个形式参数(变量名),调用函数的时候(实际参数),必须是值

Return:1)终止函数,2)返回值

Firebug:查看函数的运行

2.函数的作用域

作用域:1)全局变量(任何位置),2)局部变量(函数内部)

函数调用:函数名(实际参数1,实际参数2.。。。。。);var 变量名=函数名();

函数名命名:1)不能和系统内部关键字相同,2)函数名有意义

系统内部函数:parseInt,parseFloat,isNaN,isFinite,NaN

3.递归

递归:函数调用函数本身,注意让函数有条件

函数出现的位置:出现在任意位置

4.数组

格式:var arr=[12,34,45];

下标:下标从0开始,数字个数-1

补充知识点:

   If(){//语句块

   Document.write();

Document.write();

Document.write();

I++;++I;

Sum+=I;

}

   For(){

      //循环体

Document.write();

Document.write();

Document.write();

I++;++I;

Sum+=I;

}

For(){}=》break(continue//跳出);

Break:跳出循环不再执行

   For(){

      For(){//break}

}

Continue:跳出当前次循环

   For(var i=0;i<=9;i++){

if(i%2==0){

continue;

}else{

Document.write(i);

}

}

数组:

若干数据的集合

语法:

   var arr=[1,2,3];

vararr=new Array(1,2,3);

数组扩展:

   Var arr1=[23,12,56];

   Var arr2=[45,23,22];

   Var arr3=[34,34,99];

Vararr=[arr1,arr2,arr3];

   Arr=[

        [23,12,56],

         [45,23,22],

        [34,24,99]

]

4.作业讲解

【php基础班】第11天 复习、二维数组、数组方法、字符串对象、Math对象、date对象

第二节 二维数组

二维数组:数组内部数据为数组

23[0][0]

12[0][1]

56[0][2]

45[1][0]

23[1][1]

22[1][2]

34[2][0]

34[2][1]

99[2][2]

Varnum1=arr[0][0];

Varnum2=arr[2][1];

Varnum3=arr[2][2];

案例求二维数组的和:

/求数组中所有项的和

      var arr=[

              [23,45,23,45,23],

              [45,35,67,4355,23],

              [34,56,2322,56569,234]

           ];

      //var arr=[23,23,43,435,236];

      var sum=0;

      for(var i=0;i<arr.length;i++){//i是外面数组的下标

        for(var j=0;j<arr[i].length;j++){//j是里面数组的下标

           sum=sum+arr[i][j];

        }

      }

      document.write("二维数组的和为:"+sum);

二维数组练习

求最大值和下标

var arr=[

[34,45,3,23],

[43,34,435,34324],

[334,54,34,999],

[45,34,56,234,54,6456,324,324,546,235,234],

[224,456,546,234,32,34,234,324,234],

[24,56,324,234,546,45,324]

];

var max=arr[0][0];

var xiabiao1=0;

var xiabiao2=0;

for(var i=0;i<arr.length;i++){//循环外面的数组

for(var j=0;j<arr[i].length;j++){//循环里面的数组

if(max<arr[i][j]){//做比较找最大值

max=arr[i][j];//把大的值赋值给max

xiabiao1=i;//找到下标

xiabiao2=j;//找到下标

}

}

}

document.write("最大值为:"+max+"下标为:"+xiabiao1+","+xiabiao2);

 

第三节 数组方法

数组排序:

把数据有序的排列起来

Vararr=[23,435,456,67,65];

选择排序:在数组中找出最大值,放到数组最后一个元素,把最后位置原数据放到最大值的位置(交换)(假如从小到大排序)

元数组

23

435

456

67

65

第一次

23

435

65

67

456

第二次

23

67

65

435

456

第三次

23

65

67

435

456

第四次

23

65

67

435

456

Arr[4]65和arr[2]456

Vartemp=arr[4];

Arr[4]=arr[2]

Arr[2]= Temp

数组方法:

vararr=[324,435,23];

vararr1=[1,2,3];

vararr2=[4,5,6];

arr.concat(数据);把数据连接起来

arr.join(“字符”);得到的是字符串,以字符连接数组数据得到的

arr.pop();删除数组最后一项并且返回

arr.reverse();把数组的顺序翻转

第四节 字符串对象

字符串方法:

Varstr=”abcdefgab”;//简写形式

Varstr=new String(”abcdefgab”);//标准形式

Varstr=” abcdefgab”;

Str.indexOf(“字符”);可以获得这个“字符“的第一个下标

   如果字符串中找不到要找的字符,那么返回的就是-1

Str.lastIndexOf(“字符”); 以获得这个“字符“的最后出现下标

Str.toUpperCase:转换为大写形式

Str.toLowerCase:转换为小写形式

CharCodeAt(数);获得制定位置的Unicode编码

   记住:小写a=97,大写A=65;

charAt(数);获得这个数的位置的字符

substr(数字1,数字2)//截取字符串,如果只有一个数字,从数字开始截取到最后,如果有

              两个数字,从数字1截取数字2个

Substring(数字1,数字2);//如果只有一个数字截取到最后,如果有两个,就是从数字1开始到数字2之前,但是不会包含数字2,如果数字1和数字2从小到大或者从大到小放的位置不同,那么默认的从最小的数开始找

varstr="abcdefabc";

   var n1=str.indexOf("cdef");

   var n2=str.lastIndexOf("bc");

   var n3=str.toUpperCase();

   var n4=str.toLowerCase();

   var n5=str.charCodeAt(2);

   var n6=str.charAt(3);

   var n7=str.substr(3,3);

   var n8=str.substring(3,7);

   document.write(n8);*/

   //basdjkj.png

   function check(){

   //获得字符串的后缀

   //加入允许上传的文件类型[jpg,png,gif]

   varzhaopian=document.getElementById("wenjian").value;//zhaopian="bomdom.jpg";

   var n=zhaopian.lastIndexOf(".");

   var houzhui=zhaopian.substr(n+1);

   houzhui=houzhui.toLowerCase();

   if(houzhui=="jpg"||houzhui=="png"||houzhui=="gif"){

   alert("您可以上传啦");

   }else{

   alert("照片太丑重新上传哦");

   }

}

案例:

限制用户上传文件类型

 

Varstr=Document.getElementById(“id名”);通过id获得某个标签

str.value;获得str的value值

识别方法和属性:

属性:对象.属性名;

方法:对象.方法名();

第五节 Math对象:

Math.pow(n1,n2);求n1的n2次方

Math.abs(n);求n的绝对值

Math.round(n);求n的四舍五入的值

Math.max(n1,n2。。。);可以放好多个参数,求这些参数的最大值

Math.min();求最小值

Math.floor(n);向下取整,不大于n的最大的整数

Math.floor(3.1);

Math.floor(3.9);

Math.floor(3.5);

Math.floor(3.6);

Math.floor(3.2);

Math.ceil(n);向上取整,不小于n的最小的整数

Math.ceil(3.4);

Math.ceil(3.9);

Math.ceil(5.2);

Math.ceil(6.4);

Math.ceil(9.4);

Math.random();获得0和1之间随机数,注意:能包含0不包含1

案例:
   1)找到0到10之间的随机数Math.random()*10=>得到0到10之间的随机数

找到0到20之间的随机数Math.random()*20=>得到了0到20之间的随机数

找到0到60之间的随机数Math.random()*60=>得到了0到20之间的随机数

找到6个10到30的随即数字=》(0到20)+10

找到6个20到60的随即数字=》(0到40)+20

找到6个30到90的随即数字=》(0到60)+30

Math.floor(Math.random()*(大数-小数+1))+小数;

第一步:得到0到1之间的数字(取不到1)

第二步:得到求0到任意数字间的随机数Math.random()*n

第三部:Math.random()*大数-小数

第四部:乘以任意的数字,得到的最大值向下取整后是这个数字-1

第五步:乘以任意数字+1,就能得到最大值向下取整后得到这个数字

第六步;Math.floor(Math.random()*(大的-小的+1))+小数

特殊字符:

“,’,\,\r,换行\n回车,\t,tab符号

第六节 时间日期对象:

Vard1=new Date();//创建当前时间

Vard2=new Date(“2015/11/15 17:29:36”)//创建指定;

Vard3=new Date(2015,11,15,17,29,39);//创建制定时间(月份数字是0到11之间)

Vard4=new Date(13345478456745);//毫秒数时间

D1.toLocaleString();

varyear=d1.getFullYear();//获得年份

varmonth=d1.getMonth();//获得月份

vardate=d1.getDate();//获得日期

varday=d1.getDay();//获得星期

varhours=d1.getHours();//获得消失

varminute=d1.getMinutes();//获得分钟数

varsecond=d1.getSecond();//获得秒数

varmillisecond=d1.getMilliseconds();//获得毫秒数(0到999)

vartimeshijian=d1.getTime();

设置时间:

D1.setFullYear(n);

D1.setMonth(n);

D1.setDate(n);

D1.setDay(n);

D1.setHours(n);

D1.setMinutes();

D1.setSeconds();

D1.setMilliSeconds()