我想知道这是否是解决此JavaScript问题的最佳方法。我想首先检测变量是否未定义。如果不是,我想插入一个默认值。
示例,此if语句正在接收名为zoomControl的变量。它可以有3个可能的值。是,假或未定义。
我希望输出为:true = true,false = false,undefined = true
if (opt.set_zoomControl) {
set_zoomControl = opt.set_zoomControl
} else {
set_zoomControl = true;
}
效率这么高吗?这可以缩短或重写吗?
谢谢。答案 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;