函数(封装特定功能的代码块)
创建函数
创建后需要使用在执行函数体中
- 方法一:var 函数名=function([参数]){} ——匿名函数
- 方法二:function 函数名([参数]){} ——匿名函数
- 方法三:var 函数名=([参数])=>{} ——匿名函数
- 方法四(一般不用):var 函数名=new Function(‘ ’)
调用函数
函数名([参数])
嵌套函数
在函数中也可以嵌套函数
函数的作用域问题(变量能用的范围)
全局作用域
定义在函数外,和循环代码块中的var/let/const,可在函数中用
局部作用域
在函数中定义的变量只能在函数中使用
函数中的变量的使用
能在函数体中找得到的就不会去函数体外边找取变量按就近原则
补充
全局作用域
定义在外面,和循环代码块中的var/let/const,可使用
块级作用域
let/const,定义在代码块中
参数(一个函数中动态的数据,可以作为参数传入)
形参:接收的变量
实参:实际的参数
参数的特性:
- 作用域是局部
- 传递和接收一一对应
- 没有传递数据时,形参默认值是undefined
- 可以修改默认值,在形参后直接赋值
返回值return:执行函数之后拿到的数据
- 一个函数只能使用一个return
- 执行到return会终止整个函数
- 需要返回多个时,可以把他封装成对象在返回
- 把数据封装到对象时,如果键值对的名字一致时可只写一个名字
- 返回值是对象可以直接进行解构
虎哥小知识
- 调试时F10会跳过函数的执行步骤,F11不会
- 不能使用关键字定义变量