前端js函数基础

如果有一段代码想要反复使用 可以选择循环结构 循环主要针对的是一段代码在这一刻瞬间执行多少次

如果不定时的情况下 反复执行一段代码 则可以用到函数

函数的作用:

     把一段代码用大括号封装起来 起个名字 可以反复调用

函数定义的格式:

      function 函数名 (){

            函数体代码

}

   函数名()

函数不调用,不执行

函数的参数的使用:

函数参数分为形参(形式参数) 和 实参(实际参数)

形参:

        函数定义时 定义的参数格式  function 函数名(形参1,形参2,形参3....){}

实参:

       函数调用时 需要传入实参  就是用实参给形参赋值

实参和形参数量不匹配时的处理方式:

    1 当实参等于形参的数量时   正常使用

    2 当参数的数量小于形参时(传少了)   多余的形参的值是undefined

    3 当实参数量大于形参时(传多了)   多余的实参不予理会

函数的返回值:

函数的返回值的格式:

         function 函数名(){

          return  需要返回的结果

        }

    函数名()

我们函数只是实现某种功能 最终的结果需要返回给函数的调用者

通过retrun实现的

只要函数遇到return就会把后面的结果返回给函数的调用者  函数名()=return后面的值

函数返回值的一些小知识:

1如果函数内部没有return语句 那么函数默认返回undefined

2如果函数内部使用了return 但是后面没有值 那么也是返回undefined

       这种情况下 return后面没有值的意义在于:单纯为了结束方法

推荐的做法是要么让函数始终都返回一个值 要么永远都不要返回值

如果函数内部有其他结构语句 

那么有可能写多个return

最好是所有的return返回的数据类型是一致的

函数的两种创建方式

 函数表达式创建:

   show()

   function show(){
        console.log(‘我是show函数’)

   }

  变量式函数创建:

   demo()

   var demo=function(){
       console.log(‘我是demo函数’)

   }

两种创建函数的区别:第一种可以提前调用   第二种不可以

变量的作用域

所谓的变量的作用域指的就是变量的生效范围

js变量按照声明的位置的不同分为全局变量和局部变量

        全局作用域:

               变量在函数外  不属于任何一个函数的变量就是全局变量 整个js代码都可使用

                   全局变量的声明周期:

                             页面加载时创建  页面关闭时销毁  声明周期较长 容易造成空占内存 

                               还会产生命名冲突(全局污染)

       局部作用域:

               变量在函数内创建 就是局部变量 局部只能在当前函数内使用

                  局部变量的生命周期:

                            函数调用时变量创建 函数调用完毕时变量销毁

                            参数也是局部变量 不同的函数 可以使用相同的参数的名字

      隐式全局变量:

                隐式全局变量 系统自动帮助我们创建a变量(不推荐使用)

变量和函数提升:

js代码并不是页面加载时就完全的从第一行开始逐行执行并解析 

而是在开始执行之前 进行预解析阶段

在预解析阶段 把使用var和function创建的变量进行提升 目的是为了更方便使用数据

变量提升规则:

 预解析阶段会把var声明的变量进行提升 提升到对应作用域的第一行

 变量值提升变量名 不提升赋值

 变量提前调用 值为undefined

(全局变量提升到群居第一行 局部变量提升到局部第一行)

函数提升规则:

预解析阶段会把function声明的函数 进行提升 提升到当前作用域的第一行 函数提升会提升整个函数 函数的调用不提升

匿名函数:

  不带函数名字 只有函数声明

function(){}

意义:作为值存在 给其他变量赋值或者作为参数和返回值i使用

函数也是数据类型(算是引用数据类型的一种)

递归函数:

是函数自己调用自己

如果没有限定条件 会导致浏览器卡死

所以递归必不可少的就是结束的条件

回调函数:

函数作为参数传给另一个函数

在另一个函数内部 接受到函数的回调函数本身

然后另一个函数内执行这个回调函数的使用

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值