函数声明
自定义函数分为两类,有名函数和匿名函数。
有名函数的定义也叫函数声明,基本语法:
//function 函数名(){
// 需要执行的代码
//}
// 命名函数
function fn(){
alert(1)
}
// 调用该函数
fn();
匿名函数的定义有两种形式,函数表达式形式和事件注册形式。
函数表达式的基本语法:
函数表达式将匿名函数赋给一个变量,这样调用的匿名函数就可以通过这个变量来调用。
//let 变量名 = function (){
// 需要执行的代码
//}
// 函数表达式
var fn2 = function(){
console.log(123);
};
事件注册式的基本语法:
//文档对象.事件 = function(){
// console.log(123)
//};
btn.onclick = function(){
console.log(123);
}
函数传参
实参与形参
所有的数据类型都可以当参数传递进去,多个参数用逗号隔开。
// n,f 形参 - 形式上定义的参数名,形参与实参一一对应
function fn(n,f){
alert(n); //1
console.log(f); //2
}
// 1,2 实参 - 实际传递的参数
fn(1,2);
//fn([1,2,3],function(){ alert('aaa') })
arguments 不定参
arguments其实就是传递给函数的实参集合。
它类似数组Array的对象,存放在arguments中的每一个实参,可以用arguments[下标]
的格式来访问,对于arguments中存放的实参个数则可以使用arguments.length
获得,除了length属性和通过索引值引用之外不能用任何数组的方法。
function fn(){
// arguments 获取一组实参 伪数组
console.log(arguments[1]); //2
// 实参的长度
console.log(arguments.length); //5
}
fn(1,2,3,4,99);
// arguments 不定参应用 实参的累加和
function fnSum(){
var sum = 0;
for(var i=0;i<arguments.length;i++){
sum+=arguments[i];
}
console.log(sum);
}
fnSum(1,2,3,4,5,6,7,8,9); //45