函数介绍
函数作用:储存代码,解决代码复用
1.函数语法 :
(1)声明函数 : 把代码存入容器中,只是一个存储过程,此时不会执行函数体代码
function 函数名(){
函数体代码: 储存需要复用的代码
}
(2)调用函数 : 执行函数体代码
函数名()
2.函数和循环的区别
(1)本质区别
函数是一种复杂数据类型,负责储存代码
循环是一种语句,让一段代码执行多次
(2)功能不同
函数:代码复用(一段代码需要在很多个地方执行一次)
循环:重复执行(一段代码在一个地方执行多次)
3.函数参数 : 调用者传递数据给函数
3.1传:调用者
函数名(实际参数)
3.2 收:函数
function 函数名(形式参数){ //函数体代码 }
3.3函数传参本质: 实参给形参赋值的过程
(1)函数传参是按照传入顺序一一赋值
(2)函数每一次调用传参过程都是独立的,互不影响
(3)函数 形参数量 和 实参数量 可以不一致的
function learn(name, salary) {
console.log(`${name}学前端`)
console.log(`${name}学得很认真`)
console.log(`${name}毕业了`)
console.log(`${name}学完工资${salary}块`)
}
learn('班长女朋友', 2000)
learn('班长老表', 3000)
learn('ikun')
learn()
4.逻辑短路(逻辑中断)
4.1短路运算: 左边式子就可以决定结果,右边式子不执行
(1) && : 一假则假
(2) || : 一真则真
(3) ! : 取反(没有短路运算,因为只有一个式子)
4.2短路规则:
(1) && : 找假。 左边式子值可以转成false,则无条件返回左边式子的值,右边不执行。 反之无条件返回右边式子的值。
let res = undefined && 1
console.log(res) //undefined
(2) || : 找真。 左边式子值可以转成true,则无条件返回左边式子的值,右边不执行。 反之无条件返回右边式子的值。
let res1 = 2 || null
console.log(res1) //2
应用场景:函数默认参数
function getSum(num1, num2) {
num1 = num1 || 10
num2 = num2 || 10
console.log(num1 + num2)
}
getSum(10, 20)
5.函数返回值
函数将运算结果返回给调用者
(1) 传:函数
function 函数名(){//函数体 return 返回值}
(2) 收:调用者
let 变量名=函数名()
(3) 返回值return注意点
如果函数没有return,则默认返回值undefined
如果函数有return,但return后面没有值,则默认返回值也是undefined
return关键字可以结束函数体,类似于break,break结束循环体,return结束函数体
function getSum(arr) {
let sum = 0
for (i = 0; i < arr.length; i++) {
sum += arr[i]
}
return sum
}
let sum1 = getSum([10, 20, 30, 40])
document.write(`<h3>${sum1}</h3>`)