函数概念
函数是由事件驱动的或者当他被调用时可执行的可重复使用的代码块。
如果是具备一点功能的代码段,代码段来实现具体的功能。要想实现一个函数的功能需要对函数进行调用。每写完一个函数就需要在使用时进行调用,可以多次调用,很容易实现模块化编程。
函数的作用
1减少代码开发时间
2 模块化编程
3 可以重复使用
函数的定义
通过关键字function声明,
function fn(){}
其中:
function---为声明函数的关键字,指出这是一个函数
fn ------是函数的名称,类似于永来存储函数的变量
() ------为函数的参数,多个参数用 , 隔开
{} ------放置函数体,用于执行时,所要编译的代码段
函数调用
fn() ;
解释: 直接写函数名 加上 小括号“()”
注:
1、小括号后面得加上分号“;”
2、如果有参数需要加参数
应用:
// function fn(){}
// 函数名的规则和变量一样
function fn(){
document.write('代码块');
}
// 函数的调用:函数名()
fn();
形式2 function fn(参数1,参数2,…,参数N){
// 函数体内功能代码
}
// 函数参数的传递:
// 1 可以有多个参数
// 2 参数之间使用,隔开
函数的创建
声明式:
通过关键字function声明:
function fn(){}
赋值式:
通过变量赋值(未命名函数):
var fn = function(){};
这种方式下,虽然这个函数没有名字,但是这个函数赋值给了fn,因此通过变量fn也能调用到这个函数
以上两种声明方式等价
都可以使用 函数名/变量名+() 调用执行
函数的参数
函数的参数分为:形参和实参;
function fn(a){ //a为形参
console.log(a); //打印出123
}
fn(123); //123为实参
写在函数体内的参数称为形参,相当于该函数的某个变量,只不过不用var声明;需要遵循变量的命名方式。
调用时传递的参数为实参,相当于给变量赋值,可以传递所有数据
形参和实参都可以有多个,用逗号隔开,多个形参和实参之间必须相互一一对应
function fn(a,b,c){ //a = 1, b = 2, c = 3
console.log(a+b+c); //6
}
fn(1,2,3);
如果形参和实参不一致:
形参的数量比实参的数量多,多出来的形参,为undefined;
形参的数量比实参的数量少,多出来的实参,传递到arguments对象中;
形参的数量与实参的数量相等,一一对应。
函数中的关键字
return
return是无条件退出当前方法/函数,并且返回数据(注:如果没有数据返回undefined),不仅可以返回值,还可以终止程序的执行。
argument对象的使用
如果形参和实参不一致:
形参的数量比实参的数量多,多出来的形参,为undefined;
形参的数量比实参的数量少,多出来的实参,传递到arguments对象中;
形参的数量与实参的数量相等,一一对应。
在函数中,形参和实参的个数,可以为任意个,甚至数量不对应,程序都不会报错,但是在计算过程中可能会出现NaN,如:
function fn(a,b,c){
return a+b+c;
}
alert(fn(1,2)); //弹出NaN
这是因为在JS中,参数在函数内部是以一个数组表示的,函数接受的永远是一个数组。
我们可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每个参数。
在arguments身上有许多属性,如
arguments.length为数组的长度----当前传进来几个参数
arguments.callee()----为当前所在的函数本身,递归
系统函数
系统自带的函数,可以直接使用的函数。
parseInt(data)--------将字符串化为整数(类型为number)
parseFloat(data)--------将字符串化为浮点数(类型为number)
Number(data)--------将字符串化为数字(类型为number)
Math.random()--------产生随机数
Math.ceil()--------向上取整
Math.floor()--------向下取整