26

私はこのテストをたくさん使っているようです

if( object && object !== "null" && object !== "undefined" ){
    doSomething();
}

onobjectsサービス呼び出しまたは Cookie の読み取りから戻ってきました (異なるブラウザは異なる値nullundefined"null"、またはを返すため"undefined")。

このチェックを行うためのより簡単で効率的な方法はありますか?

4

10 に答える 10

39

これ以上簡単にできるとは思いませんが、そのロジックを関数にリファクタリングすることはできます。

function isRealValue(obj)
{
 return obj && obj !== 'null' && obj !== 'undefined';
}

次に、少なくともコードは次のようになります。

if (isRealValue(yourObject))
{
 doSomething();
}
于 2012-09-21T17:42:03.387 に答える
3

が true の場合、 orobjectでないことは既にわかっています (文字列値が間違っていると仮定します)。notおよび notテストが必要だと思います。nullundefinednullundefined

もしそうなら、nullorとの単純な比較undefinedは比較すること!= nullです。

if( object != null ){
    doSomething();
}

この関数は、が もでもdoSomethingない場合にのみ実行されます。objectnullundefined

于 2012-09-21T17:46:06.503 に答える
2

多分このように

   if (typeof object !== "undefined" || object !== null)
    // do something
于 2012-09-21T17:38:43.400 に答える
2

多分このように:

var myObj = {};
var isEmptyObj = !Object.keys(myObj).length;

if(isEmptyObj) {
    // true
} else {
于 2018-10-11T19:00:40.817 に答える
1

オブジェクトが空かどうかを確認する最良の方法は、以下のようなユーティリティ関数を使用することです。

関数を作成する

function isEmpty(obj) {
    for(var key in obj) {
        if(obj.hasOwnProperty(key))
            return false;
    }
    return true;
}

上記の関数を次の方法で使用します:-

したがって、空のオブジェクトがある場合は、上記の関数を使用して空かどうかを確認できます。

var myObj = {}; // Empty Object
if(isEmpty(myObj)) {
    // Object is empty (Would return true in this example)
} else {
    // Object is NOT empty
}
于 2019-11-28T06:15:44.790 に答える