当调用某个函数,这个函数会返回一个结果出来,这就是有返回值的函数
函数的本质是封装(包裹),函数体内的逻辑执行完毕后,函数外部如何获得函数内部的执行结果呢?要想获得函数内部逻辑的执行结果,需要通过 return 这个关键字,将内部执行结果传递到函数外部,这个被传递到外部的结果就是返回值。
// 函数返回值
function fn(){
return 50
}
// 只要函数遇到return 就把后面的结果 返回给函数的调用者 函数名() = return后面的结果
// fn() 调用者 相当于执行了 fn()=50
console.log(fn())
// 实际开发中的写法
// let 变量名 = 函数名()
let result = fn()
console.log(fn())
// 回顾
// let num = prompt('请输入数字')
函数返回值细节
// 求和函数
function getPrice(x, y) {
console.log(111) // 可以执行
return x + y
console.log(222) // 不会被执行
// 1 return后面的代码不会被执行
// 2 return 后面的数据不要换行 否则会返回undefined
}
// console.log(getPrice(1, 2)) // 实际开发中需要把结果放到不同的盒子里面,但是这样写非常不方便
let sum = (getPrice(1, 2))
console.log(sum)
console.log(sum)
// 3 return函数可以没有return,但是默认会返回undefined
function fn() {
}
let re = fn()
console.log(re)
// 1. 函数名相同, 后面覆盖前面
function fn() {
console.log(111)
}
function fn() {
console.log(2222)
}
fn()
// 2. 参数不匹配
function fn(x, y) {
console.log(x + y)
}
// (1). 实参多余形参 剩余的实参不参与运算
fn(1, 2, 3)
// (2). 实参少于形参 剩余的实参不参与运算
fn(1) // 1 + undefined = NaN * */
多个返回值
function fn(num1, num2) {
let t1 = num1 + num2
let t2 = num1 - num2
let t3 = num1 * num2
let t4 = num1 / num1
return [t1, t2, t3, t4]
}
let r = fn(1, 2)
console.log(r) // [3,-1,2,1] 返回值为数组