JavaScriptで未定義の場合に変数を設定する 質問する

JavaScriptで未定義の場合に変数を設定する 質問する

JavaScript変数をテストして、それがそうであれば定義できることは知っていますundefinedが、

var setVariable = localStorage.getItem('value') || 0;

はるかに明確な方法のように思えますし、他の言語でもこれを見たことがあると思います。

ベストアンサー1

はい、それは可能ですが、厳密に言えば、取得された値が本当にundefinedではなくfalseyの場合にデフォルト値が割り当てられます。したがって、一致するだけでなく、、、、、にも一致します(ただし、は一致しません)。undefinednullfalse0NaN"" "0"

変数が厳密に指定された場合にのみデフォルトに設定したい場合undefined、最も安全な方法は次のように記述することです。

var x = (typeof x === 'undefined') ? your_default_value : x;

新しいブラウザでは、次のように書いても実際には安全です。

var x = (x === undefined) ? your_default_value : x;

ただし、定義された値を持つ名前付き変数を宣言することが許可されている古いブラウザでは、これを覆すことができundefined、テストが失敗する可能性があることに注意してください。

おすすめ記事