JavaScript学习(三)——函数及其他对象
一、函数
1、使用arguments对象检测传递给函数的参数个数
<!DOCTYPE html >
<html>
<head>
<title>arguments.length</title>
<script language="javascript">
function ArgsNum(){
return arguments.length;
}
document.write(ArgsNum("isaac",25)+"<br>"); //2
document.write(ArgsNum()+"<br>"); //0
document.write(ArgsNum(3)+"<br>"); //1
</script>
</head>
</body>
</body>
</html>
2、使用arguments对象模拟函数重载
<!DOCTYPE html >
<html>
<head>
<title>arguments</title>
<script language="javascript">
function fnAdd(){
if(arguments.length==0)
return;
else if(arguments.length==1)
return arguments[0]+5;
else{
var iSum=0;
for(var i=0;i<arguments.length;i++)
iSum+=arguments[i];
return iSum;
}
}
document.write(fnAdd(45)+"<br>"); //50
document.write(fnAdd(45,50)+"<br>"); //95
document.write(fnAdd(45,50,55,60)+"<br>"); //210
</script>
</head>
</body>
</body>
</html>
3、杨辉三角实例
<!DOCTYPE html >
<html>
<head>
<title>杨辉三角</title>
<script language="javascript">
function Combination(m,n){
if(n==0) return 1; //每行的第一个数为1
else if(m==n) return 1; //每行的最后一个数为1
//其余都是相加而来
else return Combination(m-1,n-1)+Combination(m-1,n);
}
function Pascal(n){ //杨辉三角,n为行数
for(var i=0;i<n;i++){ //一共n行
for(var j=0;j<=i;j++) {//每行数字的个数即为行号,例如第1行1个数,第2行2个数
document.write(Combination(i,j)+" ");
}
document.write("<br>");
}
}
Pascal(10); //直接传入希望得到的杨辉三角的行数
</script>
</head>
</body>
</body>
</html>
二、其他对象
1、使用Date对象计算程序执行速度
<!DOCTYPE html >
<html>
<head>
<title>Date对象</title>
<script language="javascript">
var myDate1=new Date(); //运行代码前的时间
for(var i=0;i<3000000;i++);
var myDate2=new Date(); //运行代码后的时间
alert(myDate2-myDate1);
</script>
</head>
</body>
</body>
</html>
2、使用Date对象获取时间的详细信息
1 <!DOCTYPE html > 2 <html> 3 <head> 4 <title>Date对象</title> 5 <script language="javascript"> 6 var oMyDate =new Date(); 7 var iYear=oMyDate.getFullYear(); 8 var iMonth=oMyDate.getMonth()+1; //月份是从0开始的 9 var iDate=oMyDate.getDate(); 10 var iDay =oMyDate.getDay(); 11 switch(iDay){ 12 case 0: 13 iDay="星期日"; 14 break; 15 case 1: 16 iDay="星期一"; 17 break; 18 case 2: 19 iDay="星期二"; 20 break; 21 case 3: 22 iDay="星期三"; 23 break; 24 case 4: 25 iDay="星期四"; 26 break; 27 case 5: 28 iDay="星期五"; 29 break; 30 case 6: 31 iDay="星期六"; 32 break; 33 default: 34 iDay="error"; 35 } 36 document.write("今天是"+iYear+"年"+iMonth+"月"+iDate+"日,"+iDay); 37 </script> 38 </head> 39 40 </body> 41 </body> 42 </html>
3、使用Date对象获取指定天数的日期
1 <!DOCTYPE html > 2 <html> 3 <head> 4 <title>Date对象</title> 5 <script language="javascript"> 6 function disDate(oDate,iDate){ 7 var ms=oDate.getTime(); //换算成毫秒数 8 ms-=iDate*24*60*60*1000; //计算相差的毫秒数 9 return new Date(ms); //返回新的时间对象 10 } 11 var oBeijing =new Date(2008,7,8); 12 var iNum=100; //前100天 13 var oMyDate=disDate(oBeijing,iNum); 14 document.write(oMyDate.getFullYear()+"年"+(oMyDate.getMonth()+1)+"月"+oMyDate.getDate()+"日"+"距离"+oBeijing.getFullYear()+"年"+(oBeijing.getMonth()+1)+"月"+oBeijing.getDate()+"日为"+iNum+"天"); 15 </script> 16 </head> 17 18 </body> 19 </body> 20 </html>
4、使用Math.random()随机选择
1 <!DOCTYPE html > 2 <html> 3 <head> 4 <title>Math.random()</title> 5 <script language="javascript"> 6 function selectFrom(iFirstValue,iLastValue){ 7 var iChoices=iLastValue-iFirstValue+1; //计算项数 8 return Math.floor(Math.random()*iChoices+iFirstValue); 9 } 10 var iNum=selectFrom(2,99); //随机选择数字 11 var aFruits=["apple","pear","peach","orange","watermolon","banana"]; 12 //随机选择数组元素 13 var sFruit=aFruits[selectFrom(0,aFruits.length-1)]; 14 alert(iNum+""+sFruit); 15 </script> 16 </head> 17 18 </body> 19 </body> 20 </html>