arguments 属性:指向一个类似数组 但不是数组的对象,存储的是实际传递给函数的参数,而不局限于函数声明所定义的参数列表
示例代码:
function show(a,b)//定义show函数 { if(arguments.length==2)//如果实际输入两个值 alert(a+b); else if(arguments.length==3)//如果实际输入3个值 alert(arguments[0]+" "+arguments[1]+" "+arguments[2]); //弹框输出 输入的三个值 } show("hello","world","haha"); alert("show函数的长度:"+show.length); //show函数的长度效果图:
length属性:函数定义时所指定参数的个数
arguments中的callee属性:它表示对函数对象本身的引用
示例代码: 使用递归实现求阶乘
function jie(n) { if(n==1) return 1; else return n*arguments.callee(n-1); } alert(jie(3));效果图:
callee的优点:
当修改函数名的时候不用再去修改函数内部的函数名,arguments.callee就表示函数对象本身。
定义在函数外部的是全局变量,任何函数都可以使用; 定义在函数内部的是局部变量,只有当前函数可以使用;
示例代码:
var a=1; function bl() { var b=2; }上述代码中a是全局变量,b是局部变量。
特殊情况: 当局部变量和全局变量名相同,函数会如何执行?
var a=1; function bl() { var b=2; var a=3; alert(a); } bl();结果:
结果是 :函数会调用内部的局部变量
微信:
支付宝:
新闻热点
疑难解答