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