函数,是所有编程语言的核心,函数封装一部分语句块,可以在任何时候任何地点调用,真正做到whenever、wherever!
学习javascript的函数对以后的函数化,对象化,模块化都有重大意义。
javascript中使用function关键字来声明函数,如何理解这句话?看看下面的例子:
1 function demo1(){
2 alert("这是一个函数")
3 }
上面的方式就声明了一个函数,如何调用呢?
1 demo1()
这样就实现了一个函数的调用。
函数还可以拥有参数,具备参数的函数相比无参数的函数有更多的灵活性:
1 function demo1(name,age){
2 alert("我叫"+name+","+"我今年"+age+"岁了");
3 }
上面演示的就是一个带有参数的函数,demo1("谢某某",25),调用结果是——警告框弹出:我叫谢某某,我今年25岁了。
注意:有些地方把参数叫做形参,不过是一种称呼而已,不要在乎这些细节。
关于函数的参数,js提供一个比较有趣的属性:arguments。
arguments是什么?先实验一番:
1 function demo1(name,age){
2 console.log("我叫"+name+","+"我今年"+age+"岁了");
3 console.log(arguments);
4 }
5 demo1("谢某某",25);
调用结果如下:
插嘴:console.log的作用是在控制台输出结果,其优势是能结构化输出,能让我们看到输出的结果的属性、方法等等。
由上面的内容可以看到,函数输出结果是:我叫谢某某,我今年25岁了
更重要的是:输出了arguments,这是一个数组?! NO!这不是一个数组,这只是一个类似于数组且具备length(长度)属性的东西。(具体验证可以使用数组方法去操作)
arguments有什么用呢?
试想一函数:1到10的累加。
1 function demo1(){
2 var total=null;
3 for(i=0;i<arguments.length;i++){
4 total+=arguments[i];
5 }
6 console.log(total);
7 }
8 demo1(1,2,3,4,5,6,7,8,9,10);
运行上面的函数,可以得到55,通过这个简单的函数可以想象:在某些不确定参数的函数计算环境中,arguments势必提供极大的便利。
函数返回值:
大多时候,我们并非需要函数在调用后就单纯的执行某种行为,更多的是希望通过函数计算得出某个我们需要的结果,这就是函数的返回值
函数如何得到返回值呢?关键字:return
return能将函数的计算机结果返回到函数外部。如:
1 function demo1(){
2 var total=null;
3 for(i=0;i<arguments.length;i++){
4 total+=arguments[i];
5 }
6 return total;
7 }
8 var a=demo1(1,2,3,4,5,6,7,8,9,10);
9 console.log(a);
上面的代码中,函数demo1返回了1到10的累加结果,然后把这个结果赋值给了a;
return除了返回函数执行结果之外还有一个作用就是跳出函数的执行,如下:
1 function demo1(){
2 var total=null;
3 for(i=0;i<arguments.length;i++){
4 total+=arguments[i];
5 }
6 return total;
7 alert("这里无法被执行");
8 }
9 var a=demo1(1,2,3,4,5,6,7,8,9,10);
10 console.log(a);
同样的代码,加上一个alert弹出,在调用的时候会发现,alert未被执行。由此可以看出,函数在执行到return的时候就结束了。