js自定义函数的过程中,往往我们希望指定一些参数的默认值

很容易的会写出如下的js 方法

function test(a,b,c=1,d='id'){

return 1;

}

但是定义完之后,浏览器会提示页面错误,导致函数无法使用(如chrome)

当然在某些浏览器中 函数仍然是可以正常使用的(比如firefox)

如此看来,这个function 肯定是相当不合要求的

实际上js是不能这样定义function的,(不像php等其他编程语言)

解决

方案一:借助arguments实参数组来实现,改写如下:

function test(a,b){

c = arguments[2] ? arguments[2] : 1;

d = arguments[3] ? arguments[3] : 'id';

return 1;

}

方案二:在function中判断参数是否已定义,改写如下:

function test(a,b,c,d){

if(c === undefined) c=1;

if(d === undefined) d='id';

return 1;

}

看起来两种解决方案也没什么太大差异。。。

需要注意的是js中的数组下标从 0 开始

噢了 :)