1 //声明式函数定义的代码先于函数执行代码被解析器解析; 2 //引用式函数定义(函数表达式)是在函数运行中进行动态解析的。 3 window.onload = function(){ 4 5 function dwn(s){ 6 document.write(s+"<br />"); 7 } 8 9 function f1(){ //声明式函数定义;称为函数常量 10 dwn("f1"); 11 } 12 f1(); 13 14 function f1(){ 15 dwn("new f1"); 16 } 17 f1(); 18 19 f1 = function(){ //引用式函数定义 20 dwn("表达式"); 21 } 22 f1(); 23 24 } 25 26 27 结果: 28 new f1 29 new f1 30 表达式
1 window.onload = function(){ 2 function add(a,b){ 3 if(!b) 4 b = 20; 5 6 return a+b; 7 } 8 9 alert(add(10)); //30 ; 实参少于形参;多出来的形参的值为undefined 10 alert(add(10,10)); //20 11 alert(add(10,10,10)); //20 ; 形参多于实参;多出来的实参不能通过形参标识符的形式访问 12 }
1 window.onload = function(){ 2 function add(a,b){ 3 //调用对象有一个特殊属性:arguments;实际上引用了一个特殊对象:Arguments对象 4 //Arguments对象是一个集合,可以按照数字下标获取传递给函数的参数值 5 document.write("<br />函数的形参个数有:"+add.length+"<br />"+"实参的个数有:"+arguments.length+"<br />"); 6 7 for(var i=0;i<arguments.length;i++) 8 document.write(arguments[i]+" "); //通过下标获取值 9 } 10 11 add(10); 12 add(10,10); 13 add(10,10,10); 14 } 15 16 结果: 17 函数的形参个数有:2 18 实参的个数有:1 19 10 20 函数的形参个数有:2 21 实参的个数有:2 22 10 10 23 函数的形参个数有:2 24 实参的个数有:3 25 10 10 10