JavaScript判定対象が空である方法

5389 ワード

記事の目次
  • 背景
  • メソッド
  • .JqueryのisEmptyObject
  • .node
  • .判断対象属性個数
  • 1背景
    expressのフレームワークでは、bodyパラメータなどを処理していますが、あるオブジェクトのパラメータが入っていない場合が多く、プログラムではそのオブジェクトの属性を操作しています.異常な捕獲がないと、下記のコードのようなあたごの原因になります.
    let item = {
        high:23,
        width:32
    }
    let test = undefined;
    console.info(item.high);
    try{
        console.info(test.high);
    }catch(e){
        console.info(e)
    }
    console.info("hello node")
    try catch文を削除すると、hello node文が根本的にプログラムから逃げられなくなります.したがって、オブジェクトの属性を操作する前に、オブジェクトが空かどうかを判断します.
    2の方法
    Javascirpt原生は対象が空かどうかを判断する方法を提供していません.資料を調べたら、ブラウザでJQueryの方法で判断できます.しかし、nodeの環境では自分で方法を実現して判断する必要があります.
    2.1 JqueryのisEmptyObject
    $.isEmptyObject({})
    true
    $.isEmptyObject({foo:1})
    False
    
    2.2 node
    Jquery isemptyObject方法の実現を見ることができます.
    function isEmptyObject(e) {
    	var t;
    	for (t in e)
    		return !1;
    	return !0
    }
    
    for...inサイクルは、オブジェクト自身と継承可能なエニュメレート・属性を巡回します.
    2.3判定対象属性個数
    インターフェーステストを頻繁に書いている場合は、戻る対象をチェックする必要があります.上のfor inに対して方法を書いて、対象メンバーの個数を判断します.
    let checkObjectKeyNum = function(object, targetNum){
            let objectPrototypeCount = 0; 
            for (let i  in object){
                objectPrototypeCount++;
            }
            return expect(objectPrototypeCount).to.be.equal(targetNum);
    }