Javascript 函数中参数的可变数目

Javascript 函数中参数的可变数目,javascript,function,syntax,Javascript,Function,Syntax,根据传递的参数数量,是否可以告诉函数应该为其参数指定什么名称?像这样: function soSwag(swagLevel, swagStart, swagDuration || swagStart, swagStop){} 据我所知不是这样。但是,您可以只传入包含所需数据的对象 soSwag({ swagStart: 10, swagStop: 100 }); 但是,只需将null传递到第一个参数中可能更简洁。一些支持变量类型参数的流行库(例如jQuery)所做的是检查参数

根据传递的参数数量,是否可以告诉函数应该为其参数指定什么名称?像这样:

function soSwag(swagLevel, swagStart, swagDuration || swagStart, swagStop){}

据我所知不是这样。但是,您可以只传入包含所需数据的对象

soSwag({
    swagStart: 10,
    swagStop: 100
});

但是,只需将
null
传递到第一个参数中可能更简洁。

一些支持变量类型参数的流行库(例如jQuery)所做的是检查参数,然后相应地交换值:

function soSwag(swagLevel, swagStart, swagDuration) {
    if (arguments.length === 2) {
        var swagStop = swagStart;   // 2nd arg becomes swagStop
        swagStart = swagLevel;      // first arg becomes swagStart

        // code here that uses swagStart and swagStop
        // as called like soSwag(swagStart, swagStop)

    } else {

        // code here that uses swagLevel, swagStart, swagDuration
        // as called like soSwag(swagLevel, swagStart, swagDuration)

    }
}

不,但是您可以使用
参数的长度来决定如何使用所述参数。对于实现var args的小型开源库来说,这可能是一个很好的机会。太好了!我是否必须检查
===
或者我只需要
==
就行了?
===
是一个更好的总体javascript习惯(因为它避免了您通常不想要的隐式类型转换),尽管
===
=
都可以在这里使用。