目录
一.函数初步认识
函数就是封装了一段可以被重复调用执行的代码块
首先,想要使用函数,那么我们就应该先像声明变量那样去声明一个函数,声明完成之后,才可以进行调用
function 函数名(){
//函数体
}
当然,这是我们必须要掌握的基础语法,当我们学习ES6之后,会发现还可以更简单:
函数名()=>{
//函数体
}
这种声明方式叫做箭头函数,会有this的指向问题,在必要的时候,我们还会用到function函数
我们声明完成之后,可以这样调用:
函数名()
在声明函数的同时,我们还可以给到其一些参数,也叫形参,函数里保存着形参,当外界传进来确切的数值后,这些确切的数值会依次对应着形参来代替形参去执行一些操作
function getNum(a,b){
return a*b
}
getNum(2,3)
//6
这时我们就有一个问题了,如果我们只给了一个实参,而函数中有俩个形参,这时该怎么去执行呢?
最后执行的值为NaN
二.函数返回值
其实我们在上面已经使用过这个函数返回值了
没错,就是return,它可以将值返回给调用者
函数本身只是用来实现某一种功能,最终的结果返回给调用者需要return一下
return还有一个功能,那就是这行代码return了,如果这行代码成功执行了,那么后面的代码不再执行,并且return只能返回一个值
三.arguments
当我们不确定有多少参数传进来时,我们可以使用arguments来获取,arguments对象中存储了传递的所有参数
function fn(){
console.log(arguments)
}
fn(1,2,3,88,66,99,999,56789,288)
我们发现打印出来的并不是一个数组,又不是一个对象的形式,我们叫他伪数组
它是按照索引的方式来存储的,拥有length属性但是不具有数据的push.pop()等方法
最重要的一句话:只有函数才有arguments对象
为什么这样说呢?
因为在ES6的箭头函数中,它是不能用的,是报错的,为什么呢?
虽然箭头函数和function函数是一样的作用,可是在细节上还是有一些区别的,箭头函数算是一种语法糖,程序识别不到function的话,那么这个箭头函数在本质上就不算一个函数,既然不算一个函数,那么arguments就不能在其内部使用
四.函数间相互调用 以及声明方式
我们俩个函数之间也是可以相互调用的:
function getFn1(){
getFn2()
}
function getFn2(){
console.log("你好,JS")
}
getFn1()
//你好,JS
我们之前了解到的函数声明方式叫做命名函数:
也就是这个函数是有名字的,例如上面例子的getFn1,getFn2,这就是俩个命名函数
还有一种声明方式,叫做匿名函数,那我们这时就想了:那没有名字我们怎么使用呢?而且应该是报错的吧
其实我们的匿名函数可以使用一个变量来接收:
const test = function(){
console.log("我是匿名函数")
}
test()