js之函数

函数(function)

概念:将某一个常用的功能进行封装,当你想使用这个功能的时候,可以选择调用、执行这个功能即可。
javascript脚本语言中,函数分为两种:一种是关键字function定义函数、表达式形式函数。
函数使用分为两部分:声明、调用。

关键字形式函数(function定义函数)

需要通过关键字function进行声明和定义。

<script type="text/javascript">

    //调用
    fun();

    // 声明
    function fun() {
        // 函数体
        console.log("我是大哥");
    }
</script>

表达式形式函数(匿名函数)

概述:在js当中函数有两种形式:
第一种:关键字function定义的函数。
第二种:表达式形式函数,就是将关键字function定义的函数赋值给变量形式。


<script type="text/javascript">
    // 表达式形式函数
    //声明
  var jch=function (){
      console.log("我爱你我的中国");
  }
  jch();
  jch();

  jch();

</script>

两种函数的区别?

概述:两者的功能是一样的(都属于函数:都是可以将某一个功能进行封装,当你想用这个功能的时候,调用即可。)
区别:

  • 1.表达式形式函数,只能在声明之后才可以调用。如果在声明之前调用,由于变量声明部分提升(提升到当前作用域最上方),因此是undefined。
  • 2.关键字函数,解析器不仅仅会将变量声明部分提升到当前作用域最上方,还会将遇到的关键字形式函数,也会被提升到当前的作用域最上方。

回调函数

CallBack:回调函数

概述:当一个函数执行的执行的时候,传递实参是另一个函数声明部分,这个实参(函数)即为回调函数

<script type="text/javascript">
  //声明函数
  function promise(a,b,callback){
      // console.log(a.random());
      // console.log(b);
      // console.log(callback);

      console.log(a);
      console.log(b);
      console.log(callback);

      callback();
  }

  // 这种写法就是回调函数
  promise(1,"我爱你塞北的雪",function (){
      console.log("回调函数,我执行了");
  })

  // promise(Math,2,true);
</script>

递归函数

概述:在很多语言中,都有函数直接或者间接调用自身的现象,像这种现象就叫做递归现象。

<script type="text/javascript">
  function add(){
      console.log("么么哒");
      add();
  }
  add();
</script>

IIFE

immediately invoking function express
概述:IIFE在声明表达式形式函数的同时,立刻马上执行一次。


<script type="text/javascript">

  // IIFE:声明 表达式形式函数同时、立刻、马上执行一次。
  // 表达式形式函数的,声明部分
  var fun=function (){
      console.log("我执行了");
  }();

  // 在最后使用()立即执行一次
  fun();


</script>
  • IIFE:在表达式形式函数声明同时立刻执行一次,所谓"IIFE";
  • 在表达式形式函数后面可以紧随小括号立即执行一次。

IIFE其他语法

概述:关键字形式函数后面不能紧随小括号立即执行。但是程序员可以通过一些手段,将关键字形式函数编程表达式形式函数。

<script type="text/javascript">

    // IIFE:声明 表达式形式函数同时、立刻、马上执行一次。
    // 表达式形式函数的,声明部分
    var fun = function () {
        console.log("我执行了");
    }();

    // 在最后使用()立即执行一次
    // fun();

    +function () {
        console.log("+号可以将关键字函数变为表达式形式函数");
    }();
    - function () {
        console.log("-号可以将关键字函数变为表达式形式函数");
    }();
    !function () {
        console.log("!号可以将关键字函数变为表达式形式函数");
    }();
    (function () {
        console.log("()号可以将关键字函数变为表达式形式函数");
    })();
</script>
posted @ 2023-03-07 01:53  King-DA  阅读(8)  评论(0)    收藏  举报