【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.作业讲解
第二节 二维数组
二维数组:数组内部数据为数组
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()