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