什么是函数
函数就是被设计为执行特定任务的代码块
即(公共的内容)抽取封装的过程 ,实现了代码的复用
函数使用过程
先使用function 函数名(){}声明函数,再用函数名()调用该函数,当函数不调用时函数不会执行
函数传参
好处:可以极大提高函数的灵活性
函数声明时,小括号里边是形参,形式上参数
函数调用时,小括号里边是实参,实际上的参数
尽量保持形参和实参个数一致(参数中间用逗号隔开)
//函数名(参数列表)
// 求累加和
function getSum(end) {//end=50; end=100
let sum = 0
for (let i = 1; i <= end; i++) {
sum += i
}
console.log(sum);
}
getSum(50)
getSum(100)
函数返回值
函数执行后得到的结果,结果是调用者想要拿到的,函数内部不需要输出结果,而是返回结果
// 求最大值
function getMax(a, b) {
return a > b ? a : b
}
let max = getMax(3, 4)
console.log(max);
----------------------------------------------
function getArrMax(arr = []) {
let max = arr[0]
let min = arr[0]
for (let i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i]
}
if (min > arr[i]) {
min = arr[i]
}
}
return [max,min]
}
let newArr = getArrMax([1, 23, 45, 36, 67, 68])
console.log(`数组最大值为:${newArr[0]}`);
console.log(`数组最小值为:${newArr[1]}`);
作用域
在函数内部声明的是局部变量
在函数外部声明的是全局变量
注意:如果在一个函数内变量没有声明直接给值,也当全局变量来看(强烈不建议使用)
形参是局部变量
let num=34
function fn(){
num=10 //当全局变量看,强烈不建议这样使用
}
fn()
console.log(num)
--------------------------------------------
function fn(a,b){
console.log(b)
}
fn(5,6)
console.log(b)//错误写法,因为形参是局部变量
一. 匿名函数
没有函数名的函数
function(){}
匿名函数不能直接使用,一般通过函数表达式,立即执行函数方法使用
1.函数表达式
将匿名函数赋值一个变量,通过变量方式进行调用
//匿名函数
let fn=function(a,b){
console.log(a+b)
}
fn(4,5)
//具名函数
function sum(a,b){
console.log(a+b)
}
sum(4,5)//具名函数调用可以写到任何位置
注意:具名函数调用可以写到任何位置,但是匿名函数只能先声明,后调用
因为let具有变量提升
2.立即执行函数(匿名函数)
避免全局变量之间相互污染
//立即执行函数的两种写法,多个立即执行函数之间用;分隔开
(function(a,b){console.log(a+b)})(1,2);
(function(a,b){console.log(a+b)}(1,2));