首页 存档 技术 查看内容

JavaScript:理解参数

2018-3-30 13:00 |来自: 互联网 255 0

摘要: 在ECMAScript的函数中,所传入参数不限数量且不限类型。原因是ECMAScript中,参数是用一个数组来表示的,故函数所接收到的参数永远都是一个数组。 在函数体内可用 arguments对象来访问这个参数数组,从而获取传递给 ...


在ECMAScript的函数中,所传入参数不限数量且不限类型。原因是ECMAScript中,参数是用一个数组来表示的,故函数所接收到的参数永远都是一个数组。

在函数体内可用 arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数:

还可以用 length 属性来确定传递参数的个数:

关于arguments的行为,还有一点比较有意思,就是它的值永远与对应命名参数的值保持同步,而arguments对象可以与命名参数一起使用:

每次在执行上述函数时都会重写第二个参数,将其修改为10。因为argumentsp[1]的值同步到num2中;反之,若在后面再修改num2的值,也会改变arguments[1]的值。不过,这两个值分别占用不同的内存空间,如果只传入了一个参数,那么函数中定义的arguments[1]是不会作为另一个参数传入函数中的。因为arguments对象的长度是由传入的参数个数来决定,不是由定义函数的命名参数的个数决定的(可以通过定义函数时,参数设置的个数与调用时参数传入的个数不要求相同来理解)。

需要记住的是,如果没有为定义时设置的参数传递值,那么这个参数将被自动赋予undefined值,就像声明了变量但没有赋值一样:

另外,参数实际上是函数的局部变量,作用域有限。


声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部