javascript函数的参数和return语句
一、参数(最多是25个)
可以动态地改变函数体内对应的值的类型或值,使同一函数体得到不同的结果。
形参
在定义函数的时候,函数括号中定义的变量叫做形参。
实参
使用函数的时候,在括号中传入的变量叫做实参。
function tower() {
for(var i=1;i<=5;i++){
for(var j=1;j<=5-i;j++){
document.write(" ");
}
for(var j=1;j<=i*2-1;j++){
document.write("*");
}
document.write("<br/>");
}
}
tower();
输出
*
***
*****
*******
*********
改造为
function tower(num) { //num为形参
for(var i=1;i<=num;i++){
for(var j=1;j<=num-i;j++){
document.write(" ");
}
for(var j=1;j<=i*2-1;j++){
document.write("*");
}
document.write("<br/>");
}
}
tower(2); //2为实参
输出
*
***
1.参数的类型
可以是任何的数据类型
function fun(a) {
document.write(a);
}
fun("fish");
fun(true);
obj={};
fun(obj);
输出 fishtrue[object Object]
2.参数的个数(最多是25个)
A.实参和形参数量相等,一一对应
B.形参的数量多于实参
不会报错,但是多出的参数的值会被赋值为undefined
function fun(a,b) {
document.write(a);
document.write(b);
}
fun(1);
输出 1undefined
C.实参的数量多于形参
不会报错,但是得到的多出的实参的值,要用arguments对象
function fun(a,b) {
document.write(a);
document.write(b);
}
fun(1,2,3);
输出 12
二、arguments对象
每创建一个函数,该函数就会隐式地创建一个arguments对象,它包含有实际传入参数的信息。
它有两个属性。1.length(检测函数实际传入参数的个数)2.callee(对本身的调用)
它可以访问每一个传入参数的具体的值
function fun(a,b) {
document.write(arguments.length);
document.write("<br/>");
document.write(arguments.callee);
document.write("<br/>");
document.write(a);
document.write(b);
}
fun(1,2,3);
输出
3
function fun(a,b) { document.write(arguments.length); document.write("
"); document.write(arguments.callee); document.write("
"); document.write(a); document.write(b); }
12
arguments[下标]
访问当前位置的参数的值(下标从0开始)
function fun(a,b) {
document.write(arguments[2]);
}
fun(1,2,3);
输出 3
function fun(a,b) {
for (var i=0;i<arguments.length;i++){
document.write(arguments[i]+" ");
}
}
fun(1,2,3);
输出 1 2 3
三、函数重载
同一个函数因为参数的类型和个数的不同,可以对应多个函数实现,每种实现对应一个函数体
function fun(a,b) {
if(arguments.length==1){
document.write("参数只有一个 "+a);
}
if(arguments.length==2){
document.write("参数有两个,分别是 "+a+" "+b);
}
if(arguments.length>2){
document.write("参数太多了");
}
document.write("<br/>");
}
fun(1);
fun(1,2);
fun(1,2,3);
输出
参数只有一个 1
参数有两个,分别是 1 2
参数太多了
四、return语句
A.停止并跳出当前的函数
return语句后面的函数体内所有内容都不会有输出
function fun(a) {
return;
document.write(a);
}
fun(1);
没有输出
在函数体内可以有多个return语句,但是只会执行一个。(通常用于判断语句)
function fun(a) {
if(a>0){
document.write(a+"大于0");
document.write("<br/>");
return;
}
if(a<0){
document.write(a+"小于0");
document.write("<br/>");
return;
}
}
fun(1);
fun(-2);
输出
1大于0
-2小于0
B.给函数返回一个值 return [返回值];
1.返回值可以是任何的数据类型
2.只能返回一个返回值
3.如果函数没有返回值,那么这个函数的值就会自动地赋值为undefined
function fun(a) {
if(a>0){
document.write(a+"大于0");
document.write("<br/>");
return;
}
}
document.write( fun(1));
输出
1大于0
undefined
function fun(a) {
if(a>0){
document.write(a+"大于0");
document.write("<br/>");
return a;
}
}
document.write( fun(5));
输出
5大于0
5