js理解参数-arguments对象:
1. ECMAScript函数的参数:
ECMAScript函数的参数在内部是用一个数组来表示的,函数接收到的始终是这个数组,而不关心数组中包含多少个参数,也不在乎传进来的参数是什么数据类型。
在函数体内可以通过arguments对象来访问这个参数数组。
2. 关于命名参数的问题:
ECMAScript函数中命名的参数只提供便利,但不是必需的。在ECMAScript中,解析器不会验证命名参数,而是通过访问arguments对象的length属性获得参数的个数,且arguments对象的长度是由传入的参数的个数决定的,不是由定义函数时命名参数的个数决定的。
3. 值同步:
arguments的值永远与对应命名参数的值同步,但它们的内存空间是独立的。没有传递值的命名参数将自动被赋予undefined值。
Ps:<1>如果只传入了一个参数,则arguments[1]的值不会反映到命名参数中。
<2>ECMAScript中所有参数传递的都是值,不可能通过引用传递参数。
时间: 2024-10-11 17:01:16