函数
函数也是对象,函数的作用是为了代码的复用
函数不调用时,里面的代码不执行.
函数的三要素
- 函数名 一个函数的名称 (调用函数用函数名)
- 参数 传给一个函数的值
写在函数体上的叫做形式参数(形参)
形参,可写,可不写.(相当于在函数中申明了变量)
调用函数时在括号中传入的具体数值叫做实际参数
实参是给形参赋值
- 返回值
如果不写return则默认返回undefined
如果写了return但return后面没有值,也返回undefined
如果写了return,后面跟着值,则返回这个值
如果return后面写表达式,则先计算表达式,然后将表达式的结果返回
使用function关键字定义一个函数
function 函数名(参数1,参数2,参数3){ return 要返回的值; }
函数声明和函数表达式
声明的函数,函数会提升,当函数和变量名重复,函数会覆盖变量
function a(){ }
函数表达式 不会提升
1 var a = function(){ 2 3 }
匿名函数
没有名字的函数叫做匿名函数.主要用于回调或自调用函数,回调处不需要定义函数名.
看一下代码示例,可以发现,函数的三要素:函数名,参数,返回值都可以不写
function(){ }
函数的调用
函数声明,函数里面的函数是不会执行的,只有在调用函数时,函数里面的代码才会执行.
那么如何调用呢?
function add(x,y){ //定义函数时,函数中写的x,y叫做形式参数 console.log(x+y); } //调用函数:函数名(); add(1,2); //调用函数时,括号中写的数据叫做实际参数(实参) /* 注意: 调用函数时,如果不写实际参数,默认传进去的是undefined */
自调用函数(自执行函数)
//第一种写法 var res = (function(a,b){ return a+b; })(2,4); console.log(res); //6 //第二种写法 var result = (function(a,b){ return a + b; }(2,5)) console.log(result); //7 /*自调用函数时,后面这个括号用于传递实参*/
回调函数
1 //add 是声明的函数 2 function add(x,y,fn){ // x,y 为形参 3 //分析: 4 // var x = x1; 5 // var y = y1; 6 // var fn; 7 // fn = function(a,b){ 8 // var a; 9 // var b; 10 // return a + b; 11 // } 12 return fn(x,y); //此时x,y 为实参 即 fn(x1,y1) 结果为x1加y1的值; 13 } 14 15 var result = add(x1,y1,function(a,b){ //x1,y1在这里为写入的实际参数即实参. 16 return a + b; 17 }) 18 console.log(result); //打印的是x1加y1的值