js函数是由关键字function、函数名加一组参数以及置于大括号中需要执行的一段代码定义的。函数定义后并不会自动执行,要执行一个函数需要在特定的位置调用该函数,调用函数需要创建调用语句,调用语句包含函数名和参数的具体值以及执行符号()。
- 定义函数
函数定义分别有两种方式,分别是:函数声明和函数表达式
- 函数声明
由关键字function、函数名加参数+大括号中需要执行的代码组成
function fName(parameter){
//函数体,函数需要实现的功能代码
//函数可有返回值,使用return关键字
}
function:关键字,必须
fName:函数名,名可自定义
parameter:参数,名可自定义
(){}:必须
函数体内每条语句使用;结束
return:返回值根据实际情况,若没写,默认是undefined
- 函数表达式
函数表达式分为命名函数表达式和匿名函数表达式,如下:
//命名函数表达式
var fn = function fnName(){
console.log("I am fn,my name is fnName!");
}
//匿名函数表达式
var fn2 = function){
console.log("I am fn2, but I don't have name!");
}
不管是命名函数表达式还是匿名函数表达式,只要是这种函数表达式的方式声明的,函数名都会忽略,之后变量名指代该函数
所以一般都会使用匿名函数表达式。
- 函数参数
函数的参数分形参和实参,形参是指函数定义的时候声明的形式参数,实参是函数执行时传入的实际参数。
函数参数特点:
- 参数个数没限制
当实参>形参时,多余实参被忽略;
当实参<形参时,多余形参的值为undefined - 参数的数据类型没限制
这是其实是js本身是弱数据类型语言导致的 - 参数始终按值传递的
基础类型传值
引用类型传址 - 在函数体中,通过特殊对象arguments来访问参数列表
比如实现任意个数相加:
function sum(){
var result = 0;
for(var i = 0; i < argumens.length; i++){
result += arguments[i];
}
return result;
}
sum(1,2,3,4,5);
网友评论