没有赋值的参数就是undefined
<script language="javascript" type="text/javascript">
function test(a, b, c)
{
alert("a=" + a + "\r\nb=" + b  + "\r\nc=" + c);
}
test("1");
// a=1
// b=undefined
// c=undefined
</script>

解决方案 »

  1.   

    另外你可以通过typeof()方法来判断参数是否赋值。
    参考:if (typeof(b) == "undefined") b = "Zswang 路过";
      

  2.   

    应该这样说:javascript允许参数缺失,未传入值得形参为 undefined 格式数据 
    javacript 不支持缺省参数,要实现参数缺省其实需要自己判断各个形式参数是否有合理定义格式和值,对不正确的进行初始化。
    比如:
    function test(fun,str1,str2){
       if (typeof str1 != 'string') str1='';
       if (typeof str2 != 'string') str2='';
       if (typeof fun != 'function') fun=null;
       if (fun){
            return fun(str1,str2);
       }else{
            alert("no");       
            return null;
       }
    }
    function strshow(str1,str2){
       var tmp=str1+str2;
       alert(tmp);
       return null;
    }
    test();
    test(strshow);
    test(strshow,"ok1");
    test(strshow,"ok1","ok2");
    test(strshow,"ok1","ok2","ok3");
    真正支持缺省参数的语言有python等。
      

  3.   

    可以根据arguments来判断
    function test()
    {     swith(arguments.length)
        {
          case 0:
            break;
          case 1:
            //---- 
            alert(arguments[0]);
            break;
          default:
        }
    }