函数语法和作用域

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.匿名函数作用 : 开辟局部作用域,避免全局变量污染

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

上一篇:C语言基础day7


下一篇:vue2 vue-quill-editor 富文本