• h5前期js知识点10月19日总结


    函数

      函数:关键字function

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

      function  js的关键字 用于声明和定义的函数  (声明和定义都在内存模块完成)

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

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

      变量提升和函数提升都叫预解释           (都是浏览器的功能    也是前端特有呢)

      如何看他是什么模块下的   用 window

      案例

      console.log(b)       undefined

      consloe.log(a)          is not defined

      a=12

      var b=13                解析:a不是关键字,不是变量提升,是window下的量     b是关键字,是变量提升,但执行模块从上到下执行,到b时没赋值

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

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

      结构的语法

      function fn(){

          console.log()

        }

      fn()

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

      函数结构的注意事项

      1.必须带function

       function fn(){              注意事项:2.fn可有可无   有fn的叫有名函数 无fn的无名函数

        console.log(113)      (3. 小括号必须带)

          }

      fn()

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

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

      函数定义的四种方式

      1.声明式定义      function fn(){}

      2.表达式定义   var fn=function(){}  (匿名函数)

      3.通过对象的形式  var as=new Function()

      4.自调用 :定义和调用同时完成  (用括号)    (function(){ console.log(112})()

                     (特殊符号)     ~function(){console.log(113))}()    

                           +function(){console.log(114))}()

                           -function(){console.log(115))}()

                           !function(){console.log(116))}()

      函数调用函数名()

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

      按需使用:可以提升性能

      重复使用:减少代码冗余(多余)

      函数调用的过程

      函数执行时会形成一个自己的私有作用域

      最大的作用域是window(全局作用域)

      

      案例分析:

        var a=12;

        function fn(){

          console.log(a)        (undefined)

          var a=45

          console.log(a)          (45)

          }

        fn()        两个a的值     

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

      函数归属(环境)谁,跟他在哪调用没关系而是在那定义有关

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

      结构  :    function fn(){

            console.log(5)

            fn()

            }

           fn()

      break和continue运算

      break终止当前程序

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

      break和continue只能在循环语句中,如果条件语句想使用break,只能用return

      列如:

      for(var i=1;i<5;;i++){

        if(i==2){

         break                            (用break的值为 1、2)

         continue                     (用continue的值为1、3、4)

        }

      console.log(i)

      用递归求和

      var i=1;

      var sum=0;

      function fn(){

        sum=sum+i

        i++

        console.log(sum)

          if(i>10){

            return

            }

        fn()

       }

      fn()

      return (返回的)

      每个函数都有一个返回值,如果函数人为return了,返回什么就是什么,如果没有人为返回,结果就是undefined,并且return后面代码不再执行

       列如:

      function fn(){

        console.log(12)

        return 12

        console.log(145)        (return后面的代码不再执行,所以145不显示)

        }

      var as=fn()  

      console.log(as)            (fn执行后将自己值返回给as)结果为undefined)

      函数内部的return,不影响函数内部的预解释(变量提升)

      函数内外的变量

        函数外的变量叫全局变量

        函数内的变量叫私有变量

        看变量归谁,看他在哪个作用域下声明

      私有变量的种类

        1.在私有作用域下声明的

        2.通过函数传参的叫私有变量

      函数传参   argument(参数)

      function fn(a,b,c,d){} 将a,b,c,d叫参数  

      var a=45

      function fn(a){              这里面的a是形参

        console.log(a)         结果为undefined  (a是私有变量)

        }

      fn(5)       5是实参

      形参:形式上参数  (定义上的参数)

      实参:执行上的参数(实际上的参数)

      function fn(a=4){               (a=4这个参数带默认值是4)

        console.log(a)

        }

      fn()            其结果为4

      console.dir(fn())                console的输出语句

  • 相关阅读:
    Zabbix 配置笔记
    Centos7安装MySQL5.7和Redis6.0流水账
    Elasticsearch, Kibana安装
    服务治理 Service Mesh & Kubernetes & Spring Cloud的异同 侵入式 非侵入式
    文思海辉 华为 银行 ODS (oCRM)
    Java Profiler JavaMemoryLeak Arthas
    动物:人类、熊类、马类 团队精神 与 鼓励
    BPMN Sketch Miner https://design.inf.usi.ch/bpmn-sketch-miner/#
    Architecture, Design and Web Information Systems Engineering
    Cloud design patterns
  • 原文地址:https://www.cnblogs.com/diwangkaige/p/9832508.html
Copyright © 2020-2023  润新知