[学习笔记]JS function的参数问题
2011-10-10 16:27
609 查看
1.当传入的参数个数小于声明的参数个数时,缺少的参数值就是:undefined
function ReciveParam(/*第一个参数*/a,/*第二个参数*/b)
{
alert("a:"+a);// display:a:第一个参数
alert("b:"+b); // display:b:undefined
}
function GiveParam()
{
ReciveParam("第一个参数");
}
2..函数中可以通过arguments对象来获取函数的全部参数
function show()
{
var largest=Max(10,20,30,1,10000,88,56,123);
alert(largest);//display:10000
}
function Max(m)
{
var re=0;
for(var i=0;i<arguments.length;i++)
{
if(arguments[i]>re)
{
re=arguments[i];
}
}
return re;
}
Arguments对象是一个类似于数组的对象,可以按照参数的数目而不是名称来获取全部参数,并且arguments也具有length属性,可以用来获取获取实际参数的个数.
arguments虽然具有一些数组的特性,但是他不是数组.实际上arguments[]是和实际参数是引用同一变量的两种方法:
function ChangeParamValue()
{
ChangParamValueDo("第一个参数","第二个参数");
}
function ChangParamValueDo(a,b)
{
alert("改变前:a:"+a+",b:"+b);// display:改变前:a:第一个参数,b:第二个参数
arguments[0]="arguments0";
arguments[1]="arguments1";
alert("用arguments改变后:a:"+a+",b:"+b); // display:用arguments改变后:a:arguments0,b:arguments0
}
arguments有一个callee属性,用没过来引用当前正在执行的函数
function f(x)
{
if(x<=1) return x;
return x*arguments.callee(x-1);
}
3。把对象属性用作参数:这样可以不必去记参数的顺序,用对象的属性名来传参
function ArrayCopy(name,age,grade,sex,height,weiht)
{
alert("name:"+name+" age:"+age+" grade:"+grade+" sex:"+sex+" height:"+height+" weiht:"+weiht);
}
function EasyCopy(args)
{
ArrayCopy(args.name||"",
args.age||0,
args.grade||"one",
args.sex||"可选",
args.height||100,
args.weight||100 )
}
function show()
{
EasyCopy({name:'lily',age:'13',grade:'three'});
EasyCopy({name:'mark',height:'180',weight:180});
}
function ReciveParam(/*第一个参数*/a,/*第二个参数*/b)
{
alert("a:"+a);// display:a:第一个参数
alert("b:"+b); // display:b:undefined
}
function GiveParam()
{
ReciveParam("第一个参数");
}
2..函数中可以通过arguments对象来获取函数的全部参数
function show()
{
var largest=Max(10,20,30,1,10000,88,56,123);
alert(largest);//display:10000
}
function Max(m)
{
var re=0;
for(var i=0;i<arguments.length;i++)
{
if(arguments[i]>re)
{
re=arguments[i];
}
}
return re;
}
Arguments对象是一个类似于数组的对象,可以按照参数的数目而不是名称来获取全部参数,并且arguments也具有length属性,可以用来获取获取实际参数的个数.
arguments虽然具有一些数组的特性,但是他不是数组.实际上arguments[]是和实际参数是引用同一变量的两种方法:
function ChangeParamValue()
{
ChangParamValueDo("第一个参数","第二个参数");
}
function ChangParamValueDo(a,b)
{
alert("改变前:a:"+a+",b:"+b);// display:改变前:a:第一个参数,b:第二个参数
arguments[0]="arguments0";
arguments[1]="arguments1";
alert("用arguments改变后:a:"+a+",b:"+b); // display:用arguments改变后:a:arguments0,b:arguments0
}
arguments有一个callee属性,用没过来引用当前正在执行的函数
function f(x)
{
if(x<=1) return x;
return x*arguments.callee(x-1);
}
3。把对象属性用作参数:这样可以不必去记参数的顺序,用对象的属性名来传参
function ArrayCopy(name,age,grade,sex,height,weiht)
{
alert("name:"+name+" age:"+age+" grade:"+grade+" sex:"+sex+" height:"+height+" weiht:"+weiht);
}
function EasyCopy(args)
{
ArrayCopy(args.name||"",
args.age||0,
args.grade||"one",
args.sex||"可选",
args.height||100,
args.weight||100 )
}
function show()
{
EasyCopy({name:'lily',age:'13',grade:'three'});
EasyCopy({name:'mark',height:'180',weight:180});
}
相关文章推荐
- JS学习笔记(五):关于$(function(){});里面的函数不执行问题
- struts2学习笔记----------struts2.1.6接收中文请求参数乱码问题
- JS学习笔记(二)变量、作用域及内存问题
- node.js学习笔记2——querystring (查询字符串,参数处理)
- js面向对象学习笔记之八(cookie使用 与 url的get参数获取)
- 【记录】JS正则表达式(学习笔记2)现学现卖还帮美女解决了个问题。
- Struts2 学习笔记 —— 10 —— Action接收参数时的中文乱码问题
- Java学习笔记第十天:1_形式参数和返回值的问题深入研究
- JS 正则表达式(学习笔记2)匹配网址url参数
- 我前端学习问题笔记——JS初学篇
- three.js学习笔记 obj模型加载问题
- JS学习笔记——在浏览器中处理复杂运算需要注意的问题
- 关于Vue.js一些问题和思考学习笔记(1)
- 动态为js中的function传递参数问题
- node.js 学习笔记(一) 解决node里中文乱码问题
- [读书笔记]C#学习笔记八:StringBuilder与String详解及参数传递问题剖析
- [读书笔记]C#学习笔记八:StringBuilder与String详解及参数传递问题剖析
- js学习笔记 - sort()方法的用法,参数以及排序原理
- Function 2——JS学习笔记2015-6-30(第71天)
- template学习之零值初始化及字符串常量作(function template argument)函数模版参数问题