函数参数和作用域

Posted 52580587zl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数参数和作用域相关的知识,希望对你有一定的参考价值。

函数参数:

1.在封装函数的时候我们可以定义形参(形式上的参数,这个参数是没有值的)

2.定义的两个形参会按顺序接收调用时传递过来的实参

3.形参可以随意命名,但要遵循变量命名规则

4.由于js是弱类型,所以形参是不需要定义类型的

5.形参直接写名字就行,不需要var

关于形参与实参的数量

     实参个数大于形参,多余实参自动舍弃

     形参个数大于实参,多余形参默认为undefined

//argument 参数  实参副本

  1. 可以把所有实参复制一份,放进arguments
  2. arguments只能在函数内部使用,代表的是当前函数的实参副本
  3. arguments是一个类数组对象
  4. arguments存了多个值,可以通过下标的方式去访问某一个(使用中括号加下标)
  5. arguments.length//获取实参个数
  6. arguments的下标的取值范围0—(arguments.length-1)
  7. 可以从0—(arguments.length-1) 来循环
  8. arguments一般用于一系列参数,但是不确定个数的时候,如果是确定参数,以及由对应不同含义那么久定义形参

作用域:变量的作用范围

全局变量

  作用范围为整个程序的执行范围

    在函数体外部定义的变量就是全局变量

    在函数体内部不使用var定义的也是全局变量

局部变量

    作用范围是某个函数体内部

    在函数体内部通过var关键字定义的变量或者形参,都是局部变量

       当局部变量与全局变量重名时,在函数体内部局部变量优先于全局变量

局部作用域可以访问全局作用域

     全局不能访问局部作用域

js里可以不用var声明,在函数里面声明变量如果不写var,那么这个变量是一个全局变量

作用域的第二种情况:

如果局部变量和全局变量重名,使用时优先使用局部变量。

如果局部没有这个变量,就去使用全局的。

局部变量与全局变量之间的关系:

return关键字可以在函数运行完成以后返回一个值,返回到了函数的调用位置

    1.结束函数的执行

     2.交回函数执行权

     3.返回一个结果函数调用位置


以上是关于函数参数和作用域的主要内容,如果未能解决你的问题,请参考以下文章

函数参数和作用域

1.实参和形参的关系 2.函数的参数可以是任意类型吗? 3.函数作用域的问题

作用域链闭包和原型链

ES6—带默认值的函数参数及其作用域

[面试题] 函数默认参数作用域

Python__19--函数调用的参数传递与变量的作用域