1.在普通函数的内部访问arguments对象,可以获取到函数调用时传进来的参数值。arguments.length表示传进的参数个数,而不是函数定义时的参数个数
2.arguments对象是一个类数组,但可以使用数组的方式访问
3.arguments对象的值始终会与对应的命名参数同步。但这并不意味着他们访问同一个内存地址,只不过会保持同步。
4.如果只传了一个参数,再把arguments[1]设置为某个值,那么这个值并不会反映到第二个参数。第二个参数没传值就是undefined
5.如果是严格模式,argumets[1]的值并不会影响nums2。函数中也不能改写arguments对象会导致错误
6.arguments的值也不反映参数的默认值,如果没传参数,但函数定义时有默认值,argument.length=0
function doAdd(num1,num2){
arguments[1]=10//改写了num2
console.log(arguments[0]+num2)//11
}
function doAdd(num1,num2){
arguments[1]=10//并没有传入num2所以为undefined,
//arguments对象是函数调用时传入的参数个数,
//而不是函数定义时。
console.log(arguments[0],num2)//1,undefined
}