函数

函数可以把具有相同或相似逻辑的代码“包裹”起来,通过函数调用执行这些被“包裹”的代码逻辑,这么做的优势是有利于精简代码方便复用。
函数的作用:
1.精装代码
2.复用代码
函数的思想
32d7b05aa0118b747a6dd83e1f4d3ae.png
19b8de515a8076cb467cf9a0e20a4b9.png
封装
封装步骤:1、 分析有没有相同代码2、 抽取相同代码,并给一个名字3、 使用这个名字 == 执行了这段代码
image.png

函数使用

函数的声明语法
image.png
函数名命名规范【函数名其实也是变量名,都是一个容器】
和变量命名基本一致
尽量小驼峰式命名法
前缀应该为动词
命名建议:常用动词约定
image.png

调用函数

语法: 函数名()

函数传参

image.png

形参

定义函数的时候,在()写的就是形参
声明定义的时候,形参只是参数之位,在调用方法的时候,形参是一个变量
相当于在方法中声明的局部变量
只有在方法内部可以使用
如果方法外部使用,会报错
实参
调用函数的时候,写在()里面的就是实参
实参是实际参数,是真正存在的值
调用的时候,尽量让实参和形参
顺序对应
数量对应
类型对应
image.png

函数的返回值

语法
return 变量值
概念
当调用某个函数,这个函数会返回一个结果出来
这就是有返回值的函数
image.png
细节
在函数体中使用 return 关键字能将内部的执行结果交给函数外部使用
函数内部只能运行到 1 次 return,所以 return 后面的数据不要换行写
return会立即结束当前函数, 换句话说就是return 之后的代码不会再被执行
函数可以没有 return,这种情况函数默认的返回值为 undefined

作用域

概念
通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。
image.png
变量的作用域
image.png
变量作用域特殊情况:
局部变量或者块级变量 没有使用let声明,而是直接赋值的变量,会被当全局变量看;我们强烈不提倡
还有一种特殊情况,函数内部的形参可以当做局部变量看

变量访问原则-作用域链

采取就近原则的方式来查找变量最终的值

匿名函数

概念
将匿名函数作为一个值赋值给一个变量,并且可以通过变量名称进行函数调用;我们将这个声明形式称为函数表达式
语法
image.png
调用
image.png
image.png
image.png
匿名函数的一个常用场景:立即执行函数
作用: 避免全局变量之间的污染
语法:
image.png