所以我们可以借助arguments的length属性来检测调用函数时是否使用了正确数目的实际参数,因为javascript是不会为你做这些事的 function f(x,y,z) { //首先检查传递的参数数量是否正确 if(arguments.length != 3) { throw new Error("function f called with " + arguments.length + "arguments ,but it not 3 arguments."); } //下面运行真正的函数 }
arguments还为我们提供了这样一种可能,就是为一个函数传任意数目的实际参数:
比如说,我想判断你传给我的一些数字的大小,取出最大的那个,对,没错,你传多少参数都行,但是前提是你要传数字,因为我在函数内部懒得判断了。呵。 function max() { //根据我上一篇日志,这已经是JavaScript内最小的数字了 var m = Number.NEGATIVE_INFINITY; for(var i = 0; i < arguments.length; i++) { //只要有任何一个参数比m大,那么m就变成了这个参数的值 if(arguments[i] > m) m = arguments[i]; } return m; }