js的参数理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js的参数理解相关的知识,希望对你有一定的参考价值。
ECMAScript内的参数在内部使用一个数组来表示的,在函数内可以通过arguments对象来访问这个参数数组,从而传递给函数的每一个参数
function doADD () { if (arguments.length == 1) { alert(arguments[0] + 10); } else if (arguments.length == 2){ alert(arguments[0] + arguments[1] ); } } doADD(10); //20 doADD(30,20); //50
另外,arguments 对象还可以和命名参数一起使用
function doADD (num1,num2) { if (arguments.length == 1) { alert(arguments[0] + 10); } else if (arguments.length == 2){ alert(arguments[0] + arguments[1] ); } }
arguments 的值和对应命名参数的值保持同步
arguments对象的长度是由传入的参数个数决定的,不是由定义函数时候的命名参数个数决定的
没有传递命名参数将会被自动赋予undefined值
所有参数传递的都是值,不可能通过引用传递参数(
原始类型的内容是存储在栈中;而对象的内容是存储在堆中,指向堆的地址存储在栈中。
原始类型传递的是存储在栈里的内容,对象传递的是存储在栈里的地址, 都是copy栈里的值来传递, 都是值传递。
)
以上是关于js的参数理解的主要内容,如果未能解决你的问题,请参考以下文章