function table(row,col,width,color){ document.write('<br/><table border="1" width="'+width+'" align="center">'); for(var i=0;i<row;i++){ if(i%2==0){ var bg=color; }else{ var bg=""; } document.write('<tr bgcolor="'+bg+'" >'); for(var j=0;j<col;j++){ document.write('<td>'+(i*col+j)+'</td>'); } document.write('</tr>'); } document.write('</table>'); } /* table(10,2,800,"red"); table(2,3,400,"blue"); */ //alert(table(10,2,800,"red")); //执行函数并输出函数的返回值 //alert(table);//发现输出的是函数体的内容,所以函数就像是一个具有功能的容器,不使用功能的时候,和变量很相似 //var demo=table; //demo(4,2,700,"yellow"); //所以函数可以这样声明: var demo=function(a,b){ alert(a+b); }; //demo(12,4); //回调函数,就是函数的参数就是一个参数 //要求:写一个函数。 //可以从这个函数中在(10,500)去取出3的倍数 //可以取出(-200,200)中的负数 //... //条件中给出两个限制区间可以使用,但是取出值的方式是可变的,利用的是不同的算法,所以我们希望第三个参数能够是一个函数,功能型的东西 function getNumber(start,end,fun){ for(var i=start;i<end;i++){ if(fun(i)){ document.write(i+'<br/>'); } } } /* getNumber(10,500,function(number){ if(number%3==0){ return true; }else{ return false; } }); */ getNumber(-200,200,function(number){ if(number<0){ return true; }else return false; }); //alert(11); <html> <head> <script src="01.js"></script> </head> <body> </body> </html>