Javascript将未定义的值设置为默认值,但仅在未定义时

时间:2013-09-25 16:33:41

标签: javascript if-statement undefined

我想知道这是否是解决此JavaScript问题的最佳方法。我想首先检测变量是否未定义。如果不是,我想插入一个默认值。

示例,此if语句正在接收名为zoomControl的变量。它可以有3个可能的值。是,假或未定义。

我希望输出为:true = true,false = false,undefined = true

if (opt.set_zoomControl) {
            set_zoomControl = opt.set_zoomControl
    } else {
        set_zoomControl = true;
    }

效率这么高吗?这可以缩短或重写吗?

谢谢。

4 个答案:

答案 0 :(得分:1)

set_zoomControl = ( opt.set_zoomControl === false )? false: true;

答案 1 :(得分:0)

if (opt.set_zoomControl) {
            //true
}
else{
       //false or undefinded
}

答案 2 :(得分:0)

以下是最简洁的写法:

set_zoomControl = opt.set_zoomControl !== false;

看到这适用于所有三种情况都不应该太难:

false !== false      // evaluates to false
true !== false       // evaluates to true
undefined !== false  // evaluates to true

您当前的方法会导致set_zoomControl始终为true。如果你想使用你的if / else格式来清楚,那么首先处理错误的情况最简单,然后让else处理真正的和未定义的:

if (opt.set_zoomControl === false) {
    set_zoomControl = false;
} else {
    set_zoomControl = true;
} 

答案 3 :(得分:0)

set_zoomControl = opt.set_zoomControl || 0;