函数的语法以及作用域

21 阅读3分钟

函数-Function

函数:是可以被重复使用的代码块

作用:函数可以把具有相同或者相似逻辑的代码包裹起来,这么做利于代码复用

Snipaste_2023-04-10_09-05-17.png

函数基本使用

  1. 定义函数
  function 函数名(){
    函数体
  }
  1. 调用函数
函数名()

注意事项:

  • 不调用不执行
  • 可以多次调用
  • 命名语法跟变量一致

函数整体认知

 function fn(){
      let x = 20
      let y = 11
      console.log(x +y)
    }
    fn()

这样的代码只能函数内部打印,局限性很大

函数完整的执行流程:

   1.调用函数并且传递数据给函数 
   2.  执行函数整体代码:函数内部处理
   3.返回一个结果给使用者,使用return关键字
   

函数语法

function sum(参数1, 参数2...) {

return 结果

}

console.log(sum(1, 2)) // 输出函数返回的结果

说明:

  • 函数参数,如果有多个则用逗号分隔,用于接受传递过来的数据

  • return 关键字可以把结果返回给调用者

函数参数

执行过程:实参向形参传递参数

Snipaste_2023-04-10_09-58-05.png

  1. 声明时括号里的值叫做形参(形式上的参数)
  2. 调用时括号里的值叫实参(实际上的参数)
  3. 多个参数用逗号隔开
  4. 实参过多会被省略
  5. 形参过多会自动补充undefined

逻辑中断&& 和 ||

值1 && 值2

  • 左边为假返回左边
  • 左边为真直接返回右边的值

值1 || 值2

  • 左边为真则直接返回左边
  • 左边为假直接返回右边

默认参数

形参可以理解成变量

   /* 函数参数-默认参数 */
   function fn(x=0,y=0){
    return x+y
   }
   console.log(fn());//0

执行过程

  • 用户不传入参数就可以给形参设置默认值
  • 没有实参传递就执行默认参数
  • 传递来的是undefined执行默认参数

函数的返回值

返回值 :return

作用:把函数结果返回给了调用者

  • retrun后面的代码不会执行
  • return后面的代码不能换行
  • 函数如果没有有return则返回的是undefined
  • break是结束循环和whitch语句,而return是结束函数语句

为什么需要返回值?

1 在开发中很多地方都要使用,不同的情况处理结果不同

2 函数内部数据存在内部空间,外部无法使用

变量来接收 let 变量名 = 函数名(实参)

作用域

作用域( scope): 变量或者值在代码中可用性的范围

作用 ::作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突,避免变量污染

全局作用域

  • 作用于所有代码执行环境整个script标签内

局部作用域

函数作用域和块级作用域

  • 函数作用域作用于整个函数内

块级作用域作用于{}内

全局变量 在任何地方都能访问和修改

局部变量 只能在当前局部内访问和修改,外部访问会报错

var 声明变量没有块级作用概念

注意点

  • 函数内部没有声明但赋值的变量是全局作用域
  • 函数内部的形参会当做局部作用域

匿名函数

具名函数:带有名字的函数

function 函数名(){

}
函数名()//调用

匿名函数:没有名字的函数

function (){

}

函数表达式:用匿名函数赋值给一个变量,用变量来调用叫做函数表达式

 let fn = function (){
   //函数表达式
}

注意事项

  • 具名函数可以先调用后声明
  • 函数表达式必须先声明再复用
  • 函数表达是可以传递参数,和使用返回值return

立即执行函数 语法:

  1. (function(){})()
  2. (function(){}())

作用:避免变量污染

注意:

  1. 多个立即函数之间用分号隔开
  2. 无需调用,本身已经调用