Javascript/Jquery-在函数中设置默认值

Javascript/Jquery-在函数中设置默认值,javascript,jquery,Javascript,Jquery,使用javascript/jquery,如果函数中没有传递值,有没有办法将变量设置为默认值?比如说 function someFunction(data1,data2) { } 如果数据1或数据2为空,则会给出一个未定义的值。在php中,我可以做到以下几点: function somefunction(data1 = '',data2 = '') { } 因此,如果没有传递变量或数据1或数据2,则默认为“”。在JS/Jquery中,我是否必须检查是否有值并相应地设置它 functio

使用javascript/jquery,如果函数中没有传递值,有没有办法将变量设置为默认值?比如说

function someFunction(data1,data2)
{


}
如果数据1或数据2为空,则会给出一个未定义的值。在php中,我可以做到以下几点:

function somefunction(data1 = '',data2 = '')
{


}
因此,如果没有传递变量或数据1或数据2,则默认为“”。在JS/Jquery中,我是否必须检查是否有值并相应地设置它

function someFunction(data1,data2)
{

if(!data1) {

data1 = '';

}

if(!data2) {

data2 = ''

}

}
似乎需要做很多事情来检查变量是否为空或不给它一个默认值

function foo(bar) {
    bar = bar || 'default';
}

(或者,如果您只使用
bar
一次,您可以将该用法替换为
bar |
并跳过中间赋值。)

您可以使用jquery的扩展方法,但在下面的代码中定义默认值

$.fn.myPlugin = function (settings) {
    var options = jQuery.extend({
        name: "MyPlugin",
        target: document,
        onOpen: function () {},
        onClose: function () {},
        onSelect: function () {}
    }, settings);
}
现在你可以做了

$("#divId").myPlugin({
    target: $("#div2")
};
这将覆盖默认值中定义的
文档
目标,元素
的id为div2

function someFunction(data){
    data = data || 'my value';
}
唯一的问题是
0
false
undefined
的处理方式相同:

someFunction(1); // data = 1;
someFunction(-1); // data = -1;
someFunction(); // data = 'my value';
someFunction(0); // data = 'my value';
someFunction(false); // data = 'my value';
您可以使用以下选项:

function foo(optionalArg) {
    optionalArg = optionalArg|| 'defaultValue';
}
只要您从未将值传递给参数。 如果通过optionalArg,此逻辑将失败 请尝试以下方法:

function foo(optionalArg) {
    optionalArg = (typeof optionalArg === "undefined") ? "defaultValue" : optionalArg;
}

只要
bar
不允许有计算结果为
false
的值,该方法就可以工作。在这种情况下,必须使用较长的三元运算符(显式比较“无效”值)。我认为这只适用于jQuery插件中的函数,对吗?@bean5是正确的。如果你想构建一些与配置和默认值有关的东西,我打赌这段代码作为插件比作为全局函数更值得编写。