函数
结构
function 函数名([形参]){
return 某个值;
}
//调用
1》函数的几种形式
函数的几种形式:
无参数,无返回值的函数(函数中没有return,括号里没有参数)
有参数,无返回值的函数(函数中没有return,括号里有参数)
无参数,
有返回值的函数(函数中有return,括号里没有参数)
有参数,
有返回值的函数(函数中有return,括号里有参数)
注意:
如果函数中没有使用return,或者函数中return后面没有任何内容,此时定义变量接收函数的返回值,
都是undefined.
函数如果有返回值,在return下面的代码是不执行的.
2》形参:定义函数的时候,小括号里的参数.
实参:调用函数的时候,传入进去的参数.
在其它语言中实参个数必须和形参个数一致,但是JavaScript中没有函数签名的概念
就是说:实参个数和形参个数可以不相等
如function getSum(num1,num2,num3){
console.log(num3);//undefined
return num1+num2;
}
var sum=getSum(10,20);//30
console.log(sum);
3>如果是命名函数的形式,函数会被被覆盖,即没有重载的概念。
如果是匿名函数,由于函数名为空,不会被覆盖。
列: var getSub=function (num1,num2) {
return num1-num2;
};
var sub=getSub(10,20);
console.log(sub);
var getSub=function (n1,n2) {
return n1+n2;
};
var sub=getSub(10,20);
console.log(sub);
}
4》全局变量
:定义在script或者不属于某个函数的变量
局部变量
:定义在函数内部的变量
函数内部可以访问到该函数所属的外部作用域的变量(作用域链)
不使用var声明的变量是全局变量,不推荐使用。
变量退出作用域之后会销毁,全局变量关闭网页或浏览器才会销毁
5》在函数中可以使用arguments.length来获取调用方法时候传入了多少个参数.
6》函数可以作为参数
1.函数是有数据类型的
2.函数可以作为函数的参数使用
3.函数可以作为函数的返回值使用
function ff1(num1,num2){
return num1+num2;
}
function ff2(num1,num2){
return num1-num2;
}
function ff3(x,y,fn){
return fn(x,y);
}
console.log(ff3(10,20,ff1));
console.log(ff3(10,20,ff2));