函数:
为完成某一功能的程序指令(语句)的集合,称为函数。函数是可重复使用的代码块。
javascript的函数定义
- 使用function 关键词
{
let a=20;
let b=50;
let c=a+b;
console.info(c);
function add(){
return a+b;
}
}
add();
console.info(c);//70
- 函数表达式
{
let a=20;
let b=50;
let c=a+b;
let add=function (){
return a+b;
};
add();
console.info(c);
}
注意:
- let语句后面要标上“;”
- 函数表达式,只能在{}里面调用才有效。
全局函数
可以在任何位置进行调用
{
function add2() {
console.info("欢迎");
}
}
add2();//欢迎
注意:就算没有{}也可以进行调用
局部函数
只能在函数内部定义
{
let a=20;
let b=50;
let c=a+b;
let add=function (){
return a+b;
};
add();
console.info(c);
}
注意:
- 可以用let定义
- 可以放在{}中。
函数参数
{
let a;
let b;
let c;
let add=function (a,b){
console.info(a+b);
};
add(0,0);//0
add(123);//NaN
add(12,34,56);//46
add(100,500);//600
}
注意:参数复制不能省略前面的参数,可省略后面的(例:aad( ,23)//报错)
立即执行函数
立即执行函:()()
()第一个括号是函数体
()第二个括号是实参
(function(a,b)
{ console.log(a-b);
}(10,2) );
注意:立即执行函数只能执行一次
箭头函数(=>)
{
let add1=(a,b)=>{
console.info(a+b);
};
add1(0,0);//0
add1(123);//NaN
add1(12,34,56);//46
add1(100,500);//600
}
下面这种写法,只有在函数体类只有一个输出或者一个返回值时才能使用。当函数体中有多条语句时,以下方法不适合
{
let add1=(a,b)=>console.info(a+b);
add1(0,0);//0
add1(123);//NaN
add1(12,34,56);//46
add1(100,500);//600
}
rest参数
ES6先引入得rest。用在函数最后,多余的参数(严格来讲,是实参)以数组的形式交给参数rest
function add(a, b, ...rest)
{ console.log('a = ' + a);
console.log('b = ' + b);
console.log(rest);
}
add(1, 2, 3, 4, 5);
注意:rest前面有三个点