Fork me on GitHub

JavaScript函数篇

JavaScript函数

通过函数可以封装人意多条语句,而且可以在任何时间调用该函数。

函数的语法:

function functionName([arg0,argo1,….argn]){

statements;

}

说明:

1.functionName是要定义的函数名,属于标识符

2.[ ] 中的arg0,arg1… 为函数的参数,不是必须的,

3.[ ] 只说明里面的内容不是必须的,它不是语法。

函数的调用:

函数名:( [arg1,arg2…argon ] )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 声明一个函数
function myFun(){
alert("我是一个函数");
}
// 函数的调用
myFun();


// 声明带有参数的函数
function add(num1,num2){
var sum = num1 + num2 ;
alert(num1 + '和' + num2 + '的和是' + sum);
}
// 函数调用
add(3,5);
// 函数调用
add(8,12);
// 函数调用
add(12,122);

// 以上函数全都写死了。。。全部都是弹出页面,没有灵活性。

注释:

函数是可以重复调用的。

参数,有些时候可以传,有些时候又不要传,看情况定。

函数的的返回值

说明:

1.任何函数通过return 语句,后面跟着返回的值来实现返回值

2.函数在执行完return语句后,会停止并且立即退出函数

3.return语句也可以不带有任何返回值, 用于提前停止函数执行,又不需要返回值的情况。

作用

函数内部只做计算,然后把值返回,可以做其他操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 声明带有参数的函数
function add(num1, num2) {
var sum = num1 + num2;
return sum; // 返回计算的结果,并且立即退出函数,后面代码不会再执行
};

// 函数调用,通过参数 传递值 进入函数内部进行计算,然后返回值。
// sum1变量保存add函数,return 返回的结果
var sum1 = add(3, 5);
// 对返回值,进行其他操作。
alert(sum1);

// 简写方式: 直接弹出,调用的这个函数,返回值包括在内。
alert(add(1012,1993));

小练习

1
2
3
4
5
6
function myFunction(arg){
// 如果arg是非数字,不做任何操作,并且结束当前函数
if(isNaN(arg)) return;
// 如果arg不是非数字,则返回arg的2倍的 值。
return arg *2;
}

函数的参数 arguments

ECMAScript 中的参数在内部用一个数组来表示,在函数体内通过 arguments 对象来访问这个数组参数。

说明:

1.arguments 对象只是与数组类似,并不是Array 的实例

2.[] 语法访问它的每一个元素

3.length属性确定传递参数的个数,同数组类似

4.arguments  可以通过下标的形式修改值,如果在严格模式下,就无法进行。

注意:函数的参数,在函数内部,是用一个数组表示的。 是通过arguments 这个对象在管理这些参数的。

1
2
3
4
5
6
7
8
9
10
11
12
function inner() {
for (var i = 0; i < arguments.length; i++){
console.log(arguments[i]);
}
}
inner(10,5,3,2,1,10);

function inner(num1,num2){
arguments[0] = 100; // 修改了下标为 0 的值, 10改成了100
console.log(num1)
}
inner(10,5);

案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 求任意一组数的平均值
function getAVG() {
// 所有参数的和
var sum = 0, len = arguments.length, i;
for (i = 0; i < len; i++) {
sum += arguments[i]
// sum = 0 + 10
// sum = 0 + 10 + 20
// sum = 0 + 10 + 20 + 30
// sum = 0 + 10 + 20 + 30 + 40
// sum = 0 + 10 + 20 + 30 + 40 + 50
// ...
};
//返回值 平均值 = 和 除以 个数
return sum / len;
};
// 接收 返回平均值
var avg = getAVG(10,20,30,40,50);
document.write(avg);