JavaScript函数

什么是函数?

  函数是一种数据类型,可以理解为一个存放代码段的容器。函数分为定义和使用两个阶段,根据定义形式可分为声明式函数和赋值式函数两种,将代码块放进函数的过程称为函数的封装。封装完毕的函数并不会立即执行,只有被声明的时候才会执行函数内的代码,即为函数的调用。

一、函数的定义

1.声明式函数

语法:function 变量名(参数){代码段}
理解:声明式函数的是直接利用function关键字来定义的,在JavaScript中会先进行预解析,将函数提升到函数执行发生之前,因此,声明式函数可以在定义前就进行声明调用。

2.赋值式函数

变量=function 函数名(){代码段}
理解:将定义后的函数直接赋予变量的函数称为赋值式函数。赋值式函数不会进行预解析,在定义前调用赋值式函数会报错,赋值完毕之后函数名失效,不能通过调用函数名的形式来进行声明调用。如果将函数名省略,则将此类函数称为匿名函数,用小括号将匿名函数包裹起来,再后面在加个小括号,则称为自调用函数。

二、函数的调用

1.语法:函数名+(参数)

  函数名+小括号便可以调用已定义的函数,小括号中的实参需要与函数的形参一一对应。
2.注意事项:对于声明式函数,因为预解析的缘故,可以在函数定义之前便进行调用

三、函数的参数

  函数的参数分为形参和实参两种,形参是指函数定义时放在小括号中变量名,而实参则是函数调用时赋予的实际值,实参和形参一一对应。

四、函数的返回值

  函数的的返回值即是我们希望函数执行完毕返回的结果,使用return关键字来返回,当函数解析到return关键字时,无论是否仍有代码未执行,函数都将结束运行。

五、预解析

  JavaScript在执行发生前,会先进行预解析,预解析会将变量以及声明式函数的定义提升至顶部,再从上至下依次进行,通过以下案列了解与解析的过程。
案例1

    console.log(a)//undifined
    var a=10;
/*分析:代码执行之前,先将 var a提升至顶部,预解析结束,按顺序执行代码
,输出a的值,此时的a只是定义了,还未赋值,所以是undifined。再执行a=10*/

案例2

 a()  //hello word
    function a(){
        console.log('hello word')
    }
    b()//报错,b is no a function
    var b=function(){
        console.log('javascript')
    }
/*分析;a是声明式函数,会进行预解析,b是赋值式函数,不预解析
代码的执行顺是:
function a(){
  console.log(''hello word)
}
a()  b()报错,停止运行

案例3

 var a=10;
   console.log(a)//10
   function a(){
       console.log('hello word')
   }
   a()//报错,a is not a function
   /*预解析:
   var a
    function a(){
        console.log('hello word')
    }
    a=10  10将函数语句替换掉
    console.log(a)//10
    a() 报错 a不是函数了
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一.初步了解函数 为什么要有函数呢,我们先从函数的功能出发,来认识一下函数给我们带来的好处 比如: 当我们满足一定...
    时光如剑阅读 1,136评论 0 13
  • 一.初步了解函数 为什么要有函数呢,我们先从函数的功能出发,来认识一下函数给我们带来的好处 比如: 当我们满足一定...
    心存美好阅读 127评论 0 0
  • 概念 函数(function),也叫作功能、方法,函数可以将一段代码一起封装起来,被封装起来的函数具备某一项特殊的...
    白棠阅读 185评论 0 0
  • 函数的概念 函数也叫作功能,方法,函数可以把一段代码封装,被封装的函数具有一项特殊的功能,内部封装的一段代码作为一...
    amanohina阅读 99评论 0 0
  • 定义:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 什么是函数? 函数是一组可以随时随地运行的语句...
    简约酒馆阅读 93评论 0 0