函数语法和作用域

1 函数介绍

需求:就是一段代码,需要在很多地方使用

 函数语法: 函数是一种用于储存代码块的复杂数据类型

作用:解决代码复用的问题.

1. 声明函数: 声明函数只是把代码封装起来,不会执行函数代码体.

   function 函数名(){

       函数体代码: 需要存储的一段代码

        }

2. 调用函数 : 执行函数代码体(函数不调用,代码体不执行)

函数名()

2 函数传参

 函数参数:调用者 传递数据 函数

1 传数据: 调用者    函数名(实参)

2 收数据: 函数    function 函数名(形参){  //函数体 }

3. 函数传参原理 : 实参给形参赋值

  •   函数传参是按照顺序 一一赋值
  •   每一次调用函数 传参过程都是独立的,互不影响
  •   函数实参 和 形参 数量 可以不一致

3 函数默认参数(自己在开发中使用不多 ,后面了解 很多js框架函数默认参数底层原理)

函数默认参数 使用 逻辑运算符短路运算(逻辑中断)

应用场景(1)函数默认参数, (2)用于多条件筛选

1.  短路运算: 左边式子就可以决定结果,右边式子不执行

逻辑与&& 一假则假

&& : 找假 . 左边式子值可以转成false,则返回左边式子的值,反之返回右边式子的值

 逻辑或 || 一真则真

let res = 10 && null

console.log( res )//null

|| : 找真 . 左边式子值可以转成true,则返回左边式子的值,反之返回右边式子的值

 let res1 = 10 || null

 console.log( res1 )//10

 console.log( 20 && null && undefined )//null

 console.log( 20 || null || undefined )//20

! 取反 (没有短路运算,因为只有一个式子)

4 函数返回值 return

1 传 : 函数

                function 函数名(){

                            //函数体  return 值

                  }

 2 收 :  调用者

                let 变量名 = 函数名()

3 返回值注意点:

1 return 关键词后面的代码不会执行(return 可以结束函数体,类似于循环中的break)

2 函数如果没有返回值,得到的则是underfined(函数默认返回值是 underfined )

没有返回值:

  • a 没有写 return
  • b 写了 return,return后面没有返回值

5 作用域(3种)

变量的作用域:变量可以使用的范围

  1. 全局作用域    在函数外面声明,可以在页面任何地方使用
  2.  局部作用域   在函数内部声明的变量,只能在函数使用
  3. 块级作用域    在大括号(分支加循环) 里面声明的变量,只能在大括号内部使用

作用域链:    默认情况下,代码处于全局作用域(0级),当我们声明一个函数之后,就会开辟一个局部作用域(1级),而函数内部又可以声明函数(2级),以此类推形成链式结构,称之为作用域链

作用域链  访问规则   就近原则

6 匿名函数

 1.匿名函数 : 没有函数名的函数

        *  let   函数名  =  匿名函数

            * 匿名函数自调用 : ( function(){} )()

                * 注意:自调用语法 前一个语句不能省略分号

  2.匿名函数作用 : 开辟局部作用域,避免全局变量污染

            * 全局变量污染 :  变量名太多了,会增加同名风险

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值