函数
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。通俗的说,函数是利用特定语法,将一段代码打包在一起,每次调用函数就可以让这个代码块内的代码全部执行,复用代码。
要注意的是,函数跟循环不相似,循环是重复一定次数的执行代码,函数虽然可以重复执行代码,但是它很灵活,可以任意决定它调用的时机
声明函数
声明函数有两种方式
// 方式一
let fn1 = function () {
// 代码块
}
// 方式二
function fn2 () {
// 代码块
}
fn1和fn2都是函数名字,这是两种不同声明方式写的位置不同。
函数体内的代码,在声明时不会执行的。必须在调用函数后,才能执行
调用函数
函数调用只需要将函数名字加括号即可,一个函数可以重复调用无数次
let fn = function () {
// 代码块
}
fn()
调用后,函数内的代码块就会执行
例如:计算1 + 2的值,并且输出
let add = function () {
let res = 1 + 2
console.log(res)
}
// 第一次调用
add() // 此时函数调用,函数体内的代码执行,输出3
// 还可以再次调用
add() // 此时再次调用,继续执行代码,输出3
...
这样我们就可以得到一个能自动计算1+2值的函数,但是这样很蠢…因为每次都只会计算1+2,计算其他值,就需要再写函数,很麻烦。所以…看下面
函数参数
为了不让函数内部的代码全部都固定死、每次执行都是固定结果,所以函数可以在调用时,可以从外部注入数据到内部使用,这种行为是通过函数参数完成的。
想要使用函数参数功能,从外部注入数据,那么函数内就需要提前有占位的符号,这种符号就类似变量功能,称为形参,而注入的数据成为实参
// 例如计算,1 + n的结果
// 此时函数内需要一个n作为占位符,那么n需要提前声明
let add = function (n) {
// 这个n是声明函数内会使用n(n就是形参)
let res = 1 + n // 这里使用n占位
console.log(res)
}
// 调用时,可以传入不同的数据,作为此次调用n的实际数据,
add(5) // 此时n=5,则执行后,输出:6 (传入的5就是此次传入的实参)
add(10) // 输出:11
...
add(-10) // -9
这样就得到一个能计算1+n的函数,如果需要的参数很多