0

これがこの JavaScript の問題に対処する最善の方法であるかどうかを知りたいです。変数が未定義かどうかを最初に検出したいと思います。そうでない場合は、デフォルト値を挿入したいと思います。

例、この if ステートメントは zoomControl という変数を受け取ります。3 つの可能な値を持つことができます。true、false、または未定義。

出力を次のようにしたい: true = true、false = false、undefined = true

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

これは効率的ですか?これを短縮または書き換えることはできますか?

ありがとうございました。

4

4 に答える 4

1
set_zoomControl = ( opt.set_zoomControl === false )? false: true;
于 2013-09-25T16:36:43.150 に答える
0
if (opt.set_zoomControl) {
            //true
}
else{
       //false or undefinded
}
于 2013-09-25T16:39:34.963 に答える
0

これを最も簡潔に書く方法は次のとおりです。

set_zoomControl = opt.set_zoomControl !== false;

これが 3 つのケースすべてで機能することを確認するのはそれほど難しくありません。

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

現在の方法では、set_zoomControl常に になりtrueます。わかりやすくするために if/else 形式を使用したい場合は、最初に false ケースを処理し、次に true と undefined を で処理するのが最も簡単ですelse

if (opt.set_zoomControl === false) {
    set_zoomControl = false;
} else {
    set_zoomControl = true;
} 
于 2013-09-25T16:40:54.200 に答える
0

set_zoomControl = opt.set_zoomControl || 0;

于 2013-09-25T16:41:36.123 に答える