函数声明/调用
声明函数 : 是一个存储过程,此时不会执行函数体代码 function 函数名(){ 函数体代码: 需要存储的一段代码 }
调用 : 执行函数体代码 函数名()
function 函数名() {}
函数名()
函数参数
调用者 传递数据 函数
传:调用者 函数名(实际参数)
收:函数 function 函数名(形式参数){ 函数体代码 }
函数传参本质: 实参给形参赋值的过程 (1)函数传参是按照传入顺序一一赋值 (2)函数每一次调用传参过程都是独立的,互不影响 (3)函数 形参数量 和 实参数量 可以不一致的
function learn(name,money) {
console.log(`1-${name}来武汉黑马学前端了`)
console.log(`2-${name}学的很认真,老师都很帅`)
console.log(`3-${name}毕业了`)
console.log(`4-${name}找到工作了,月薪${money}`)
}
//调用函数
//调用者A
learn('张三',8000)
//调用者B
learn('李四',9000)
函数默认参数(逻辑短路运算)
函数默认参数 使用 逻辑运算符短路运算(逻辑中断)
短路运算: 左边式子就可以决定结果,右边式子不执行
&& : 一假则假
|| : 一真则真
! : 取反(没有短路运算,因为只有一个式子)
短路规则: && : 找假。 左边式子值可以转成false,则无条件返回左边式子的值,右边不执行。 反之无条件返回右边式子的值。
|| : 找真。 左边式子值可以转成true,则无条件返回左边式子的值,右边不执行。 反之无条件返回右边式子的值。
//需求:给函数添加默认参数0
// (1)如果用户有传递实参,就使用用户传递的实参
// (2)如果没有传,就使用默认参数
function getSum(num1,num2){
num1 = num1 || 0
num2 = num2 || 0
console.log(num1+num2)
}
getSum(66)
函数返回值 return
函数返回值 : 函数 传递数据 给调用者
传 : 函数
function 函数名(){ return 值 }
收 : 调用者
let 变量名 = 函数名()
注意点 (1)函数return关键字后面的代码不会执行的
* 只要有return关键字,函数体立即结束执行。
(2)如果函数没有return,则默认返回值是undefined