js函数

41 阅读2分钟

函数的概念

帮我们把项目中多个地方使用到的功能,抽离出来 然后在需要的地方 调用函数即可。

写一个函数
  分为两个部分
    1.定义阶段
    2.调用阶段

函数的定义

  1. 赋值式定义
    var fn = function( ){ }
  2. 声明式定义
    function fn1( ){ }

函数的调用

函数名( )

        function fn1() {
            console.log(222);
        }
        fn1()

声明式与赋值式的区别

1.书写不同 打印时,声明式会带上函数名,赋值式没有
2.调用时有差异 声明式:可以在函数定义之前调用
 2.1 赋值式定义

   fn()   //fn is not a function
   var fn = function(){}
   fn()

调用时在函数之前调用不可以,只能在函数之后调用。
因为浏览器会做变量提升

   var fn;   备注: 这一行会在当前最开始的哪一行, 第一行
   fn()      //fn is not a function   原因在于, 此时 fn 经过变量提升后, 有 fn, 但 值为 undefined
   fn=function(){
   console.log(222)
   }

2.2 声明式定义

   fn1()
   function fn1(){}
   fn1()

调用时在函数之前和之后调用都可以。

函数的参数

参数分为

  1. 形参 函数名后(function)后边的小括号内部,每书写一个 就相当于在函数内部声明一个变量,可以在函数内部去调用。
  2. 实参 调用函数使得小括号内部书写的值,就是实参,实参与形参为一一对应的关系。

注:如果实参数量少于形参,那么前边的形参对应接受值,没有对应实参的形参值为undefined。
  如果形参数量少于实参,那么一一对应后,多余的实参无法通过参数获取。

函数的返回值

语法:return 需要返回的内容

函数默认返回值
可以不写return ,函数会默认在代码最后一行写上return undefined

返回值的书写
取决于 是否需要得到函数内部某一个变量的值,如果需要 可以使用返回值将其返回,如果不需要可以不写

return
具有中断函数执行的功能, 如果不想中断函数,那么一定要将return放在函数的最后

函数的预解析

预解析之后(会把函数提升到当前作用域最顶层)(暂时理解为 当前代码最开始的第一行), 在js中只有变量和函数才会有预解析或者提升。