函数的返回值、作用域、变量的读写规则

一.函数的返回值

  • 返回值概念

    • 函数自身的处理数据或执行结果,需要被二次使用或其他程序调用时,需要将数据返回出来

  • 如何拿到返回值

    • 关键字:return 要返回的数据

  • return的功能

    • 可以让函数返回指定的

    • 可以立即结束当前函数

      • 一个函数中可以写无数个,但是只能执行一次return,一次只能返回一个数据,不允许返回多个数据

  • 返回到哪

    • 返回到函数的执行语句

      • 函数名(),既是在执行函数,也是在拿返回值

  • 注意

    • 一个函数如果没有return,那么返回的是undefined;如果有return,那么返回值就是return后面的值

  • 可以返回哪些数据

    • 所有数据

      • 当返回函数时,形成了闭包(后期概念)

  • 什么时候需要返回值?

    • 功能性函数(打印表格,改颜色)

      • 可以有,但是没有必要有返回值

    • 处理数据的函数(补零,计算器,计算圆的面积)

      • 一般都有,返回数据

二、作用域

  • 谁作用的哪个区域

    • 谁:数据(变量)

    • 哪个:如何划分,函数就是一个区域

  • 全局

    • 不属于任何一个函数

    • 全局作用域中的变量,叫全局变量

    • 全局作用域中的函数,叫全局函数

    • 生命周期:一直存在

    • 耗性能,但是方便

      • 少用全局

  • 局部

    • 任何一个函数内部都是局部作用域

    • 局部作用域中的变量,叫局部变量

    • 局部作用域中的函数,叫局部函数

    • 生命周期:朝生暮死

    • 节省内存,不方便

    • 函数的参数(形参):是当前函数的局部变量

  • 匿名函数

    • 利用匿名函数解决全局耗性能,局部不方便的问题

    • (function(){})()

三、变量的读写规则

  • 当全局和局部的变量名重复时

  • 读的规则:

    • 向上级作用域查找,找到了,就使用,同时,停止查找;找到顶级作用域,都没有,报错

  • 写(设置,赋值)的规则:

    • 向上级作用域查找,找到了,就写入,同时,停止查找;找到顶级作用域,都没有,会默认在顶级作用域声明这个变量,然后使用

  • 注意:声明变量时,必须加声明关键字,不加声明关键字,可能能执行,但是不规范

猜你喜欢

转载自www.cnblogs.com/dajia0809/p/12791198.html