函数基础与种类/形实参及映射/变量类型
📌 函数基础与种类
函数定义方式
对代码块进行封装,方便反复使用
// 函数声明
function 函数名() {
...
执行代码块
}
// 匿名函数表达式-函数字面量
// 表达式定义方式 会自动忽略函数名 ——> 即匿名函数
var 函数名 = function() {
...
执行代码块
}
- 函数字面量(匿名函数表达式)定义函数可以是命名的,也可以是匿名的,函数名在作用域外是不可访问获取的
📌 形实参及映射
- 🔧 函数式编程:
一个固定的功能或程序段被封装的过程,实现一个固定的功能或程序,整个封装体中需要一个入口和一个出口。
入口就是函数的参数,出口就是返回值
函数的组成
多个实参、形参,参数间用逗号隔开
// 定义
function 函数名(形参1,形参2,形参3...) {
代码块
}
// 调用
函数名( 实参1,实参2,实参3.... )
- 形参:形式上占位,声明时的参数
- 实参:实际的数值,调用时的参数
-
形参与实参匹配,JS中可以不一致:
- 实参 == 形参 ——> 按顺序依次赋值
- 实参 > 形参 ——> 按顺序赋值,多余实参丢弃
- 实参 < 形参 ——> 按顺序赋值,未接收的形参默认undefined
arguments 函数内置对象 :
- 接收函数所有传入的实参,只能在函数中使用
- 伪数组:与数组相似,具有数组的特性,可通过索引取值
- 有长度(具有length属性,arguments.length)
- 包括了所有传入的实参,可以通过索引值获取元素
函数的返回值return
函数调用整体的值 == 函数的返回值 == return后面的数据
- 如果没有写return,函数内部会隐式添加return,值是undefined
- return可以中止函数运行,return后面的语句不会执行
📌 变量类型
作用域
提高程序可靠性,减少命名冲突
- 全局作用域:整个页面
- 局部作用域:函数只有在调用的时候可以在全局作用域中划分出局部作用域
变量类型
-
全局变量:全局作用域声明的变量,函数内部没有声明即赋值的变量
- 使用范围:全局作用域中任何位置都可以使用
-
局部变量:局部作用域中声明的变量
- 使用范围:当前局部作用域才可以使用