• 10.9号函数的定义


    1. 函数 关键词function

    复习

    Var 是js的关键字,用于声明变量,声明在内存模块完成,定义(=)是在执行模块完成。

    Var可以在内存模块提前(js代码执行前)完成所以有变量提升这个功能。

     

    因为a没有带var,所以不存在变量提升,浏览器会把他当成window的属性。

    Function也是js的关键字,用于声明和定义函数的,声明和定义都在内存模块完成了。

    Function 也是内存模块提前完成,所以有函数提升这个功能。

    变量提升和函数提升 都叫预解释。都是浏览器的。

     

    2.函数的定义:函数:具有一定功能的代码块。

    函数是通过function定义的,function 后跟的是函数名。

    结构语法

    function fn(){}

    通过上图我们可以发现,内存模块只存var的变量名。而存function整个代码块,因为声明和定义同时完成的。

    函数结构的注意的

    函数定义 通过function 定义  function fn(){}

    函数定义的四种方式

    1. 声明式定义 function fn(){}
    2. 表达式式定义   var an=function(){}  匿名函数
      1. 自调用

      定义和调用同时完成。

      4.通过 对象的形式   var as=new Function(){}

       

      函数调用 函数名()       fn()

      函数最大的优势  会形成一个独立的模块,可以按需使用,可以重复使用。

      按需使用  可以提升性能    重复使用 减少代码冗(rong 三声)余。

      函数调用的过程

      函数执行时会形成一个自己的私有作用域。最大的作用域是window(全局作用域)

      然后执行函数里面的代码块。

      作用域链:函数内部的变量被使用时,首先会在自己的私有作用域下查找是否有这个变量,有就直接使用,没有就会向他的上一级查找,父级就使用父级的,父级没有就会以此继续向上查找直到window为止,window有就使用没有就is not defined。这种查找机制我们叫作用域链。

      函数归属谁,跟她在哪调用没有关系,而是在哪定义有关。

      函数递归:函数内部内部调用自己

      Break 和continue运算

      Break 终止当前程序

      Continue 跳出当前的程序,执行下一个

      // console.log(a)
      // console.log(b)
      // var a=12;
      // b=12;
      // function fn(){
      // console.log(12)
      // }
      // fn()
      // function fn(){
      // console.log(123)
      // }
      // as()
      // var as=function(){
      // console.log(12)
      // }
      // var a=12;
      // function fn(){
      // console.log(a)
      // var a=144;
      // console.log(a)
      // }
      //
      function fn(){
      console.log(123);
      function ff(){
      console.log(52)
      }ff()
      }fn()
      // fn()
      // var sum=0;
      // var i=1;
      // function fn(){
      // sum=sum+i;
      // i++;
      // console.log(sum)
      // fn()
      // }
      // fn()
      // (function(){
      // console.log(412)
      // })()
      // !function(){
      // console.log(12)
      // }()
      var a = 123;
      function fun(){
      alert(a);
      a = 456;
      }
      fun();
      alert(a);

  • 相关阅读:
    awk处理实记
    unity自动转换资源文件
    unity语音聊天之 www.GetAudioClip
    Unity屏蔽emoji
    UGUI Font模糊
    unity打光报错:Mesh doesnt have albedo UVs,Please creat them in your modelling package
    js的运行机制问题
    关于javaWeb中的路径问题总结
    关于TomCat上传文件中文名乱码的问题
    JavaSE阶段初期的一些问题
  • 原文地址:https://www.cnblogs.com/mo123/p/9824735.html
Copyright © 2020-2023  润新知