如何检查参数是否已通过

时间:2014-01-02 18:29:56

标签: javascript

我将参数传递给我写的JavaScript库中的函数:

ffff.setup({
    'size':{'width':'100','height':'100'}
});

在函数中,我选择它们:

var ffff = {
    setup: function(config) {
        if (config["size"]["width"]) {my_width = config["size"]["width"];}
        if (config["size"]["height"]) {my_height = config["size"]["height"];}
    }
}

我的错误是,如果我没有指定参数,我会收到Cannot read property 'height' of undefined错误:(错误发生在if (config["size"]["height"])

ffffr.setup({
    'size':{'width':'100'}
});

我应该如何检测是否提供了变量?

6 个答案:

答案 0 :(得分:4)

可能有更优雅的方法(例如jQuery extends()如果你使用那个库),但是在一个非常基本的层面你可以做到

if(typeof config['size'] !== "undefined" && typeof config['size']['height'] !== "undefined")

答案 1 :(得分:1)

如果您正在查看配置对象,可以使用.hasOwnPropertyMDN

if( config.hasOwnProperty("propName") ){
 //use config.propName
}

答案 2 :(得分:1)

if (config.size && config.size.width) ...

答案 3 :(得分:0)

尝试:

if (typeof variable === 'undefined') {
    // variable is undefined
}

或者:

if (typeof (conf) === 'object') {
    // object is undefined
}

答案 4 :(得分:0)

您可以使用

config["size"].hasOwnProperty('width')

答案 5 :(得分:0)

检查它是否已定义,并使用三元运算符设置默认值

(param===undefined)?default_value:param;

它将做的是检查它是否已定义,如果未定义则将其设置为您想要的任何值,但保持不变