欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    js判斷數組為空和null(js數組過濾方法)

    下面的代碼片段,用于檢查對象是否為空。對于較新的瀏覽器,你可以使用 ES6 的 “.keys”。對于較舊的瀏覽器,可以安裝庫并使用其“ ”方法。

    const?empty?=?{};
    /*?-------------------------
    ??較新的瀏覽器
    ----------------------------*/
    Object.keys(empty).length?===?0?&&?empty.constructor?===?Object
    //?true
    /*?-------------------------
    ??老版本的瀏覽器可以使用?Lodash
    ----------------------------*/
    _.isEmpty(empty)
    //?true
    

    什么是原生

    原生 指的是不使用框架或庫。它只是常規的普通 ,沒有使用或之類的庫。

    A.在較新的瀏覽器中檢查空對象

    我們可以使用內置的.keys方法檢查空對象。

    const?empty?=?{};
    Object.keys(empty).length?===?0?&&?empty.constructor?===?object;
    

    為什么我們需要額外的 檢查?

    你可能想知道為什么我們需要對 進行檢查。它是為了覆蓋包裝器實例。在中,我們有9個內置的構造函數

    new?Object();
    new?String();
    new?Number();
    new?Boolean();
    new?Array();
    new?RegExp();
    new?Function();
    new?Date();
    

    這里,我們可以使用new ()創建一個空對象。

    注:永遠不要使用構造函數創建對象。這被認為是不好的做法,請參閱 Style Guide 和 。

    const?obj?=?new?Object();
    Object.keys(obj).length?===?0;?//?true
    

    因此,僅使用.keys,當對象為空時,它的確會返回true。但是,當我們使用其他構造函數創建新的對象實例時會發生什么。

    function?badEmptyCheck(value)?{
    ??return?Object.keys(value).length?===?0;
    }
    badEmptyCheck(new?String());????//?true?
    badEmptyCheck(new?Number());????//?true?
    badEmptyCheck(new?Boolean());???//?true?
    badEmptyCheck(new?Array());?????//?true?
    badEmptyCheck(new?RegExp());????//?true?
    badEmptyCheck(new?Function());??//?true?
    badEmptyCheck(new?Date());??????//?true?
    

    通過檢查 解決誤報

    通過添加構造函數檢查來糾正這個錯誤。

    function?goodEmptyCheck(value)?{
    ??Object.keys(value).length?===?0
    ????&&?value.constructor?===?Object;?//??constructor?check
    }
    goodEmptyCheck(new?String());???//?false?
    goodEmptyCheck(new?Number());???//?false?
    goodEmptyCheck(new?Boolean());??//?false?
    goodEmptyCheck(new?Array());????//?false?
    goodEmptyCheck(new?RegExp());???//?false?
    goodEmptyCheck(new?Function());?//?false?
    goodEmptyCheck(new?Date());?????//?false?
    

    Nice,干的漂亮

    對其他值進行空檢查

    接著,我們用一些值上測試我們的方法,看看我們會得到了什么

    function?isEmptyObject(value)?{
    ??return?Object.keys(value).length?===?0?&&?value.constructor?===?Object;
    }
    

    到目前為止看起來不錯,對于非對象它返回 false。

    isEmptyObject(100)??//?false
    isEmptyObject(true)?//?false
    isEmptyObject([])???//?false
    

    但是要當心!下面這些值會引發錯誤。

    //?TypeError:?Cannot?covert?undefined?or?null?to?object
    isEmptyObject(undefined);
    isEmptyObject(null);
    

    改進對null和的空檢查

    如果不想讓它拋出,可以添加額外的檢查

    function?isEmptyObject(value)?{
    ??return?value?&&?Object.keys(value).length?===?0?&&?value.constructor?===?Object;
    }
    

    B.舊版本瀏覽器中的空對象檢查

    如果你需要支持較舊的瀏覽器怎么辦?大家都知道,當說舊的瀏覽器時,指的是 IE,我們有2個選擇js判斷對象值是否為空,使用原生或利用庫。

    使用 檢查空對象

    原生的 JS 并不那么簡潔,但判斷用來空對象是沒問題的。

    
    function?isObjectEmpty(value)?{
    ??return?(
    ????Object.prototype.toString.call(value)?===?'[object?Object]'?&&?JSON.stringify(value)?===?'{}'
    ??);
    }
    

    對于對象,它返回true。

    isObjectEmpty({});???????????//?true?
    isObjectEmpty(new?Object());?//?true?
    

    其它類型的構造函數也能正常判斷

    isObjectEmpty(new?String());???//?false?
    isObjectEmpty(new?Number());???//?false?
    isObjectEmpty(new?Boolean());??//?false?
    isObjectEmpty(new?Array());????//?false?
    isObjectEmpty(new?RegExp());???//?false?
    isObjectEmpty(new?Function());?//?false?
    isObjectEmpty(new?Date());?????//?false?
    

    傳入 null 和 也不會報 。

    isObjectEmpty(null);??????//?false
    isObjectEmpty(undefined);?//?false
    

    使用外部庫檢查空對象

    有大量的外部庫可以用來檢查空對象。而且大多數都對舊瀏覽器有很好的支持

    _.isEmpty({});
    //?true
    

    _.isEmpty({});
    //?true
    

    jQuery.isEmptyObject({});
    //?true
    

    原生 VS 庫

    答案是看情況而定!我非常喜歡盡可能地簡化程序,因為我不喜歡外部庫的開銷。另外,對于較小的應用程序,我懶得設置外部庫。但如果你的應用程序已經安裝了一個外部庫,那么就繼續使用它。你會比任何人都更了解你的應用程序。所以選擇最適合你情況的方法

    人才們的 【三連】 就是小智不斷分享的最大動力,如果本篇博客有任何錯誤和建議,歡迎人才們留言,最后,謝謝大家的觀看。

    下面的代碼片段,用于檢查對象是否為空。對于較新的瀏覽器,你可以使用 ES6 的 “.keys”。對于較舊的瀏覽器,可以安裝庫并使用其“ ”方法。

    const?empty?=?{};
    /*?-------------------------
    ??較新的瀏覽器
    ----------------------------*/
    Object.keys(empty).length?===?0?&&?empty.constructor?===?Object
    //?true
    /*?-------------------------
    ??老版本的瀏覽器可以使用?Lodash
    ----------------------------*/
    _.isEmpty(empty)
    //?true
    

    什么是原生

    原生 指的是不使用框架或庫。它只是常規的普通 ,沒有使用或之類的庫。

    A.在較新的瀏覽器中檢查空對象

    我們可以使用內置的.keys方法檢查空對象。

    const?empty?=?{};
    Object.keys(empty).length?===?0?&&?empty.constructor?===?object;
    

    為什么我們需要額外的 檢查?

    你可能想知道為什么我們需要對 進行檢查。它是為了覆蓋包裝器實例。在中,我們有9個內置的構造函數。

    new?Object();
    new?String();
    new?Number();
    new?Boolean();
    new?Array();
    new?RegExp();
    new?Function();
    new?Date();
    

    這里,我們可以使用new ()創建一個空對象。

    注:永遠不要使用構造函數創建對象。這被認為是不好的做法,請參閱 Style Guide 和 。

    const?obj?=?new?Object();
    Object.keys(obj).length?===?0;?//?true
    

    因此,僅使用.keys,當對象為空時,它的確會返回true。但是,當我們使用其他構造函數創建新的對象實例時會發生什么。

    function?badEmptyCheck(value)?{
    ??return?Object.keys(value).length?===?0;
    }
    badEmptyCheck(new?String());????//?true?
    badEmptyCheck(new?Number());????//?true?
    badEmptyCheck(new?Boolean());???//?true?
    badEmptyCheck(new?Array());?????//?true?
    badEmptyCheck(new?RegExp());????//?true?
    badEmptyCheck(new?Function());??//?true?
    badEmptyCheck(new?Date());??????//?true?
    

    通過檢查 解決誤報

    通過添加構造函數檢查來糾正這個錯誤。

    function?goodEmptyCheck(value)?{
    ??Object.keys(value).length?===?0
    ????&&?value.constructor?===?Object;?//??constructor?check
    }
    goodEmptyCheck(new?String());???//?false?
    goodEmptyCheck(new?Number());???//?false?
    goodEmptyCheck(new?Boolean());??//?false?
    goodEmptyCheck(new?Array());????//?false?
    goodEmptyCheck(new?RegExp());???//?false?
    goodEmptyCheck(new?Function());?//?false?
    goodEmptyCheck(new?Date());?????//?false?
    

    Nice,干的漂亮

    對其他值進行空檢查

    接著js判斷對象值是否為空,我們用一些值上測試我們的方法,看看我們會得到了什么

    function?isEmptyObject(value)?{
    ??return?Object.keys(value).length?===?0?&&?value.constructor?===?Object;
    }
    

    到目前為止看起來不錯,對于非對象它返回 false。

    isEmptyObject(100)??//?false
    isEmptyObject(true)?//?false
    isEmptyObject([])???//?false
    

    但是要當心!下面這些值會引發錯誤。

    //?TypeError:?Cannot?covert?undefined?or?null?to?object
    isEmptyObject(undefined);
    isEmptyObject(null);
    

    改進對null和的空檢查

    如果不想讓它拋出,可以添加額外的檢查

    function?isEmptyObject(value)?{
    ??return?value?&&?Object.keys(value).length?===?0?&&?value.constructor?===?Object;
    }
    

    B.舊版本瀏覽器中的空對象檢查

    如果你需要支持較舊的瀏覽器怎么辦?大家都知道,當說舊的瀏覽器時,指的是 IE,我們有2個選擇,使用原生或利用庫。

    使用 檢查空對象

    原生的 JS 并不那么簡潔,但判斷用來空對象是沒問題的。

    
    function?isObjectEmpty(value)?{
    ??return?(
    ????Object.prototype.toString.call(value)?===?'[object?Object]'?&&?JSON.stringify(value)?===?'{}'
    ??);
    }
    

    對于對象,它返回true。

    isObjectEmpty({});???????????//?true?
    isObjectEmpty(new?Object());?//?true?
    

    其它類型的構造函數也能正常判斷

    isObjectEmpty(new?String());???//?false?
    isObjectEmpty(new?Number());???//?false?
    isObjectEmpty(new?Boolean());??//?false?
    isObjectEmpty(new?Array());????//?false?
    isObjectEmpty(new?RegExp());???//?false?
    isObjectEmpty(new?Function());?//?false?
    isObjectEmpty(new?Date());?????//?false?
    

    傳入 null 和 也不會報 。

    isObjectEmpty(null);??????//?false
    isObjectEmpty(undefined);?//?false
    

    使用外部庫檢查空對象

    有大量的外部庫可以用來檢查空對象。而且大多數都對舊瀏覽器有很好的支持

    _.isEmpty({});
    //?true
    

    _.isEmpty({});
    //?true
    

    jQuery.isEmptyObject({});
    //?true
    

    原生 VS 庫

    答案是看情況而定!我非常喜歡盡可能地簡化程序,因為我不喜歡外部庫的開銷。另外,對于較小的應用程序,我懶得設置外部庫。但如果你的應用程序已經安裝了一個外部庫,那么就繼續使用它。你會比任何人都更了解你的應用程序。所以選擇最適合你情況的方法

    人才們的 【三連】 就是小智不斷分享的最大動力,如果本篇博客有任何錯誤和建議,歡迎人才們留言,最后,謝謝大家的觀看。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有