【JavaScript14】函数基础

函数定义

  • 函数定义的方法有多种,主要分为函数声明和函数表达式
//函数声明
function func(arg1, arg2){
      console.log("arg1=", arg1);
      console.log("arg2=", arg2);
      return "返回一些东西"
  }
  var ret = func("苹果", "鸭梨");
  console.log(ret);

// 函数表达式
var func = function(){
      console.log("我是一个函数");
  };

  func();

函数参数

  • ECMAScript函数不关心传入的函数个数,也不关心函数的数据类型;
  • 在使用function关键字定义函数时,可以在函数内部访问argumengts对象,从中获取传进来的每个参数值;
  • ECMAScript函数中所有的参数都是按值专递。
function func(arg1, arg2){// 如果没传参数. 参数的默认值是undefined
      // js中, 所有的参数都会存在于arguments
      console.log(arguments);
      console.log("arg1=", arg1);
      console.log("arg2=", arg2);
      return "返回一些东西"
  }

  func();
  func(11);
  func(11, 22, 33);

函数的返回值

  • JavaScript中函数的返回值与python稍有不同;
  • python中可以返回多个值,JavaScript只能返回一个
function func(){
      // 请注意  `,` 是一种表达式. 从左往后算. 最后一项的值, 是整个表达式的结果
      return "返回一些东西", "再来一些东西", "还有一些东西";
  }

  var ret = func();
  console.log(ret); // 还有一些东西

函数的调用

  • 只要你能拿到一个函数. 后面添加了括号. 就能执行该函数 ==> 真理
//逻辑1   函数作为参数传入另外一个函数
function func(fn){
      console.log('我是func_开始')
      fn();
      console.log('我是func_结束')
  }

  function gn(){
      console.log('我是gn');
  }

  func(gn);

// 逻辑2. 函数作为返回值
    function fn(){
        function gn(){
            console.log("我是gn");
        }

        console.log('我是fn');
        return gn; // 函数可以作为返回值被返回
    }

    var ret = fn();
    // console.log(ret);
    ret();

// 逻辑3...
  function fn(){
      function gn(){
          console.log("我是gn");
      }

      function en(){
          console.log("en");
      }

      function mn(){
          console.log("mn");
      }
      return {
          "gn": gn,
          en: en,
          mn: mn,
          nn: function(){
              console.log("我是nn");
          }
      };
  }

  var ret = fn();
  ret.en();
  ret.nn();
  ret.gn();

自运行函数

(function(){
            console.log("我是xwl");
        })(); // 自运行函数

        +function(){
            console.log("我也是xwl");
        }();

        !function(){
            console.log("我也是xwl");
        }();

        ~function(){
            console.log("我也是xwl");
        }();

        -function(){
            console.log("我也是xwl");
        }();

        (function(arg){
            console.log(arg);
        })(123);
posted @ 2023-08-06 20:47  Tony_xiao  阅读(5)  评论(0编辑  收藏  举报