Js函数返回值

246 阅读2分钟

当调用某个函数,这个函数会返回一个结果出来,这就是有返回值的函数

函数的本质是封装(包裹),函数体内的逻辑执行完毕后,函数外部如何获得函数内部的执行结果呢?要想获得函数内部逻辑的执行结果,需要通过 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] 返回值为数组