一:函数是什么以及函数作用
1 函数是什么
函数是经过封装、调用后,能够完成特定任务的代码块
2 函数的作用
仅需“函数名(实参)”就可以调用函数,起到精简代码,提高开发效率的作用
二:函数使用
1 语法规则:
//具名函数
function 函数名(形式参数/形参){函数体
}
//匿名函数
function(){}
2 函数名命名规范:(规范而非规则)
- 前缀应为 动词
- 小驼峰命名的原则
常用动词整理
3 调用函数方式
“函数名(实际参数/实参)”,随调随用
4 函数传参的使用
-
形参与实参理解
- 形参理解为函数内声明了、但未赋值的变量
- 实参可以理解为向函数内的形参变量赋值的过程
- eg:parseInt('11')、Number('111'),本质是向函数传递实参
-
作用:
- 提高了函数的灵活性,并不会让函数拘泥于死数据
-
减少函数报错风险方式:
给函数传递一个默认值,如果没有传递实参,形参不至于是undefined类型;-
let sum = 0function addSum(array = []) {for (let index = 0; index < array.length; index++) {const element = array[index];sum += element}console.log(sum);}addSum([1, 2, 3])
-
三:return返回值
1 语法:
return 数值
2 对return的理解
函数是否需要设置返回值,根据函数用途、以及具体需求来判断
例如:parseInt('12px')、prompt('请输入一个值'),这些都为JS底层已经封装好了的函数,这些函数调用者都会得到一个返回值,依次为12、以及输入的值;
同样例如alert('你明白了嘛'),这个函数就没有返回值
因此,不管是自己封装的函数亦或者是JS底层封装的函数,都是根据实际的功能书写以及调用
3 return使用细节
- return使用时不要将后面要返回的数值换行写
- 如果一个函数没有返回值,那么这个函数默认返回undefined
- return可以将函数内运行结果交给函数外部调用者
- return语句后面的代码,将不再执行;如果运行完return语句后,函数会立即结束执行;
4 return应用
要求:返回出数组中的最大、小值
function getNum(array = []) {let max = array[0]let min = array[0]let arr = []for (let index = 0; index < array.length; index++) {const element = array[index];if (max < array[index]) {max = array[index]}if (min > array[index]) {min = array[index]}}return [max, min]}let num = getNum([1, 2, 3, 4, 5])
console.log(num);
对于return来说,返回值通常只能返回一个值;因此要一次返回多个值,可以利用数组,将数据存在数组中返回;
四:作用域
所谓作用域指的是变量能够访问的范围
1 作用域分类
全局作用域:是在整个js文件中书写、或者是<script>标签中书写的变量
局部作用域:指函数内部书写的变量
2 变量分类
依据作用域不同,变量又可以分为全局变量和局部变量
全局变量:在全局作用域中的变量,为全局变量。其可以在任何区域都可以访问和修改
局部变量:只能在局部变量所在的函数内部访问和修改,在函数外部无法访问到该变量,会报错
3 注意
- 函数内部变量未经声明,就赋值使用,该变量会变成全局作用域(不推荐)
- 函数形参当作局部变量,不能再函数外部调用
五:匿名函数
函数根据有无函数名可以分为具名函数与匿名函数
1 语法:
function(){}
2 如何调用匿名函数
(1)利用函数表达式调用
//声明函数
let num = funciton(形参){}
//调用函数
num(实参)
(2)利用立即执行函数方式调用
所谓立即执行函数,指未经调用便可立即执行
//第一种写法
(function(形参){函数体})(实参)
//第二种写法
(function(形参){}(实参))
(3)注:
多个立即执行函数之间要用分号隔开