解决Javascript函数默认参数问题

2010年5月21日 · 14 years ago

今天在写着JS代码的时候,由于函数需要传参并且有不传参的情况,在C/C++里面我们可以使用

void myfunction( arg1 = 11 ){...}

来设置参数的默认值。但是Javascript里面并不提供这种功能。

我在写代码的时候用的是JQuery,同样也不提供默认参数设置。

在网上搜了挺多,大多没用,我的想法是:先在函数里包含一个形参$arg(这里用JQuery作为例子),然后在函数体中判断$arg是否存在,如果存在则使用该值,如果不存在则赋默认值。

但是我使用if($arg)时是判断不了的,使用if($arg == null)也一样判断不了,在网上搜了一下使用if( $arg.length == 0 )也还是不行。alert一下$arg,显示为[Obeject][Obeject],即JQuery返回的数组。

解决的办法是:使用.length方法判断该变量长度,如果为false则表示$arg没有赋值。代码如下:

function sample( $arg ){

    if(  !( $arg.length ) ){

        $arg = 111;

    }

    ....

}