JavaScript基础之函数和变量作用域

时间:2022-12-12 14:59:02

函数:封装一项任务的步骤清单的代码段,再起一个名字

  ( js中函数也是一个引用类型的对象,函数名其实也是引用函数对象的普通变量。)

函数对象:内存中专门存储一个函数定义的存储空间

  函数定义的存储位置在window之外。

  何时使用:一项任务可能反复使用时,就仅需要在函数中封装一次,反复调用函数即可。

  如何声明函数:

       function 函数名([参数1,参数2,...]){

           步骤清单

           return 返回值

       }

参数:专门接受函数调用时,必要数据的变量

    如何使用参数:在函数内,参数变量的使用和普通变量完全一样

     2个作用:1. 暗示调用者,必须的参数有哪些

              2. 调用时,可接受传入的参数值

   如何调用函数:调用者直接调用函数名

                 js引擎按照函数中步骤清单执行函数

           注意:函数 定义时,不读取函数的内容

            只有调用时,才读取函数内容,执行。

      语法:函数名(参数值1,参数值2,...);

   返回值:是函数执行的结果

   何时需要返回值:调用者是否需要有明确的执行结果

变量作用域:

 js中有2种:

  1. 全局作用域:在window下直接声明的一切都属于全局作用域。全局作用域下的变量,叫全局变量

              特点:可在任何地方被访问,可反复使用。

    2. 函数作用域:在函数中创建的变量都属于函数作用域。属于函数作用域的变量,叫局部变量

              特点:仅在本次函数调用时创建

                    函数调用完,销毁。——不可重用!

              ***2种局部变量:

                 1. 参数变量

                 2. 在函数体中用var声明的变量

      函数的执行过程:3个阶段:

       1. 声明时:仅创建函数对象,封装步骤清单

       2. 调用时:为*本次*函数调用创建执行环境,和活动对象。活动对象中再包含本次要用到的局部变量。

             活动对象:在函数调用时,专门保存局部变量的空间

             为什么叫活动对象:只有调用时创建,调用后就释放

           变量的使用顺序:

               如果活动对象中有,就用自己的

               如果活动对象中没有,就用全局的

       3. 调用后:执行环境弹出,活动对象释放。

 

   ***按值传递:将变量作为参数传入函数时,仅将变量中的值复制一个副本给函数的参数变量。

              对于原始类型的值,在函数内修改参数变量的值,不影响外部全局变量的值。