一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第N天,点击查看活动详情。
为什么需要函数
- function,是被设计为执行特定任务的代码块
- 函数可以把具有相同或相似逻辑的代码“包裹”起来,通过函数调用执行这些被“包裹”的代码逻辑,这么做的优势
- 有利于精简代码方便复用
函数的声明语法
函数名命名规范
- 和变量命名基本一致
- 尽量小驼峰式命名法
- 前缀应该为动词
函数传参
- 为什么要有参数的函数
若函数完成功能需要调用者传入数据,那么就需要用有参数的函数
这样可以极大提高函数的灵活性
- 有参数的函数声明和调用
声明语法
参数列表
声明这个函数需要传入几个数据
多个数据用逗号隔开
- 形参和实参
形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数)
实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数)
形参可以理解为是在这个函数内声明的变量(比如 num1 = 10)实参可以理解为是给这个变量赋值
函数返回值
- 为什么要让函数有返回值
缺点:把计算后的结果处理方式写死了,内部处理了
解决:把处理结果返回给调用者
有返回值函数的概念:
当调用某个函数,这个函数会返回一个结果出来
这就是有返回值的函数
- 用return返回数据 当函数需要返回数据出去时,用return关键字
细节:
在函数体中使用 return 关键字能将内部的执行结果交给函数外部使用
函数内部只能出现 1 次 return,并且 return 后面代码不会再被执行,所以 return 后面的数据不要换行写
return会立即结束当前函数
函数可以没有 return,这种情况函数默认返回值为 undefined
作用域
全局作用域
- 全局有效
- 作用于所有代码执行的
- 环境 (整个 script 标签 内部)或者一个独立的 js
- 文件
局部作用域
- 局部有效
- 作用于函数内的代码环境,就是局部作用域
- 因为跟函数有关系,所以也称为函数作用域
块级作用域
- {} 内有效
- 块作用域由 { } 包括,if语句和for语句里面的{ }等
匿名函数
- 匿名函数 将匿名函数赋值给一个变量,并且通过变量名称进行调用 我们将这个称为函数表达式
调用:
- 立即执行函数 场景介绍: 避免全局变量之间的污染
注意: 多个立即执行函数要用 ; 隔开,要不然会报错