4.27 函数返回值和作用域

# 一、函数
## 6.函数的返回值
- 返回值概念
    - 函数自身的处理数据或执行结果,需要被二次使用或其他程序调用时,需要将数据返回出来
- 如何拿到返回值
    - 关键字:`return 要返回的数据`
- return的功能
    - 可以让函数返回指定的**值**
    - 可以立即结束当前函数
        - 一个函数中可以写无数个,但是只能执行一次return,一次只能返回一个数据,不允许返回多个数据
- 返回到哪
    - 返回到函数的执行语句
        - 函数名(),既是在执行函数,也是在拿返回值
- **注意**
    - 一个函数如果没有return,那么返回的是undefined;如果有return,那么返回值就是return后面的值
- 可以返回哪些数据
    - 所有数据
        - 当返回函数时,形成了闭包(后期概念)
- 什么时候需要返回值?
    - 功能性函数(打印表格,改颜色)
        - 可以有,但是没有必要有返回值
    - 处理数据的函数(补零,计算器,计算圆的面积)
        - 一般都有,返回数据
# 二、作用域
- 谁作用的哪个区域
    - 谁:数据(变量)
    - 哪个:如何划分,函数就是一个区域
- 全局
    - 不属于任何一个函数
    - 全局作用域中的变量,叫全局变量
    - 全局作用域中的函数,叫全局函数
    - 生命周期:一直存在
    - 耗性能,但是方便
        - 少用全局
- 局部
    - 任何一个函数内部都是局部作用域
    - 局部作用域中的变量,叫局部变量
    - 局部作用域中的函数,叫局部函数
    - 生命周期:朝生暮死
    - 节省内存,不方便
    - 函数的参数(形参):是当前函数的局部变量
- 匿名函数
    - 利用匿名函数解决全局耗性能,局部不方便的问题
    - `(function(){})()`
# 三、变量的读写规则
- 当全局和局部的变量名重复时
- 读的规则:
    - 向上级作用域查找,找到了,就使用,同时,停止查找;找到顶级作用域,都没有,**报错**
- 写(设置,赋值)的规则:
    - 向上级作用域查找,找到了,就写入,同时,停止查找;找到顶级作用域,都没有,**会默认在顶级作用域声明这个变量,然后使用**
- 注意:声明变量时,必须加声明关键字,不加声明关键字,可能能执行,但是不规范

猜你喜欢

转载自www.cnblogs.com/xiaokeai233/p/12791193.html