首先要先了解什么是函数在 JavaScript 中函数就是一段封装了独立功能、可以重复调用的代码块。我们写代码时经常会有一段逻辑需要反复使用如果每次用到都重复抄写代码会又长又难维护而函数就能完美解决这个问题。我们只需要把重复的逻辑打包放进函数定义一次之后想使用时直接调用就行。对函数的基础了解基础概念函数不调用就不会执行每调用一次内部代码就完整执行一次函数的组成分为两部分1.函数名写在function关键字后面小括号前面作用是标记函数方便后续找到并调用2.函数体大括号{}包裹的全部代码。循环判断return打印等所有逻辑都写在这个大括号里面JS里函数分为两大类内置函数、自定义函数内置函数浏览器提前定义好的直接调用比如alert()、prompt()、confirm()console.log()、document.write()。自定义函数需要自己定义函数名写内部逻辑这也是我们今天学习的重点。1.无参函数定义函数时函数名后面的小括号内容为空调用的时候也不能传入任何数据在函数体部分加入代码后结尾的 fun(); 调用几次就执行几次注意( 调用时的函数名要跟定义时的函数名保持一致网页输出想要达到其他效果的话可以在函数内部修改元素的样式。2.有参函数1形参与实参定义函数时括号里写的变量叫做形参相当于数据占位符调用函数时括号里传入的真实数字、文字叫做实参是传给函数内部使用的真实数据。 语法规则正常情况下形参的数量、顺序要和实参保持一致如果只定义了形参但调用时没有传入对应实参这个形参的值会变成undefined。控制台输出2默认参数当传递实参时显示实参的数据没有传实参时显示默认数据控制台输出3.函数的返回值 return1. return 三大核心作用把函数内部计算、存储的数据传递到函数外部立刻终止当前函数return后面的所有代码都不会执行一个函数里return只能返回一份内容想要同时返回多个数据需要用数组、对象包裹如果return后面空着不写内容默认返回undefined。2. 两种使用场景无返回值所有打印、输出操作全部写在函数内部外部调用函数不需要接收结果拿无参函数举例控制台输出有返回值函数内部通过return把数据抛出调用函数时用变量接收结果在函数外部打印、使用数据。拿无参函数举例:控制台输出4.匿名函数概念没有函数名的函数统称为匿名函数。用法分两种赋值给变量可多次调用立即执行函数定义完自动运行仅执行一次。5.三大作用域JS 一共 3 种作用域全局作用域、函数作用域、块级作用域作用域就是变量能被访问到的范围1. 全局作用域范围所有函数、大括号 {} 外面的代码区域。函数内部可以读取全局变量函数外面也能读取全局变量区分var a 10全局变量会挂载到 windowlet b 20全局变量但不会挂载 window。2. 函数作用域局部作用域范围function( ) { } 函数的大括号内部。只有当前函数内部能访问函数外部读取局部变量直接报错内层函数可以读取外层函数的变量。3.块级作用域范围if / for / while / 单独{} 普通大括号代码块。只有 let / const 能生成块级变量出大括号就访问不到var 不受块级作用域限制块内定义会泄露到外层4. 变量查找「就近原则」内外变量名完全相同JS 会优先读取当前函数内部的局部变量不会向外寻找全局变量控制台输出变量名完全不同当前函数找不到目标变量会一层一层向外层查找直到全局作用域全局也找不到则抛出未定义错误。因为函数外部只能访问全局所以控制台报错。目前我们只学了函数基础、参数、返回值和三大作用域这部分内容知识点并不完整还有很多拓展内容没有涉及等我后续学习后再补充。