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()

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

  通过图上我们可以发现,内存模块,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(全局作用域)

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

  案例分析:

    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的输出语句

  函数:关键字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()

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

  通过图上我们可以发现,内存模块,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(全局作用域)

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

  案例分析:

    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的输出语句