当前位置: 首页 > Web前端 > HTML

JS中如何判断一个对象是否为空

时间:2023-04-02 19:30:11 HTML

浣滆€咃細SamanthaMing璇戣€咃細鍓嶇灏忔櫤鏉ユ簮锛歁edium鐐硅禐寰俊鎼滅储銆愬ぇ杩愪笘鐣屻€戯紝B绔欏叧娉ㄣ€愬墠绔皬鏅恒€戞湰鏃犲悗鍙颁竴涓ぇ鍘傦紝鍗存湁鐫€鍚戜笂绉瀬鐨勫績鎬併€傛湰鏂囧凡鏀跺綍鍒癎itHubhttps://github.com/qq44924588...锛屾枃绔犲凡鍒嗙被锛屼篃鏁寸悊浜嗗緢澶氭垜鐨勬枃妗e拰鏁欑▼璧勬枡銆傛渶杩戝紑婧愪簡涓€涓猇ue缁勪欢锛屼絾鏄繕涓嶅瀹屽杽銆傛杩庡ぇ瀹朵竴璧峰畬鍠勶紝涔熷笇鏈涘ぇ瀹惰兘缁欎釜star鏀寔涓€涓嬨€傝阿璋€俫ithub鍦板潃锛歨ttps://github.com/qq44924588...涓嬮潰鐨勪唬鐮佺墖娈电敤浜庢鏌ュ璞℃槸鍚︿负绌恒€傚浜庤緝鏂扮殑娴忚鍣紝鎮ㄥ彲浠ヤ娇鐢‥S6鐨勨€淥bject.keys鈥濄€傪煃﹀浜庢棫鐗堟祻瑙堝櫒锛屾偍鍙互瀹夎Lodash搴撳苟浣跨敤鍏垛€渋sEmpty鈥濇柟娉曘€傚父閲忕┖={};/*----------------------杈冩柊鐨勬祻瑙堝櫒--------------------------*/Object.keys(empty).length===0&&empty.constructor===Object//true/*------------------------鏃х増娴忚鍣ㄥ彲浠ヤ娇鐢↙odash----------------------------*/_.isEmpty(empty)//true浠€涔堟槸鍘熺敓JavaScript锛熷師鐢烰avaScript鏄寚涓嶄娇鐢ㄦ鏋舵垨搴撱€傚畠鍙槸鏅€氱殑绾疛avaScript锛屾病鏈変娇鐢ㄥ儚Lodash鎴杍Query杩欐牱鐨勫簱銆侫.鍦ㄨ緝鏂扮殑娴忚鍣ㄤ腑妫€鏌ョ┖瀵硅薄鎴戜滑鍙互浣跨敤鍐呯疆鐨凮bject.keys鏂规硶妫€鏌ョ┖瀵硅薄銆傚父閲忕┖={};Object.keys(empty).length===0&&empty.constructor===object;涓轰粈涔堟垜浠渶瑕侀澶栫殑鏋勯€犲嚱鏁版鏌ワ紵鎮ㄥ彲鑳芥兂鐭ラ亾涓轰粈涔堟垜浠渶瑕佹瀯閫犲嚱鏁版鏌ャ€傚畠鏃ㄥ湪瑕嗙洊鍖呰鍣ㄥ疄渚嬨€傚湪JavaScript涓紝鎴戜滑鏈?涓唴缃瀯閫犲嚱鏁般€俷ewObject();newString();newNumber();newBoolean();newArray();newRegExp();newFunction();newDate();鍦ㄨ繖閲岋紝鎴戜滑鍙互浣跨敤newObject()鍒涘缓涓€涓┖瀵硅薄銆傛敞鎰忥細鍒囧嬁浣跨敤鏋勯€犲嚱鏁版潵鍒涘缓瀵硅薄銆傝繖琚涓烘槸涓嶅ソ鐨勫仛娉曪紝璇峰弬闃匒irbnb椋庢牸鎸囧崡鍜孍SLint銆俢onstobj=newObject();Object.keys(obj).length===0;//true鎵€浠ュ彧瑕佷娇鐢∣bject.keys锛屽畠浼氬湪瀵硅薄涓虹┖鏃惰繑鍥瀟rue銆備絾鏄綋鎴戜滑浣跨敤鍏朵粬鏋勯€犲嚱鏁板垱寤烘柊鐨勫璞″疄渚嬫椂浼氬彂鐢熶粈涔堛€傚嚱鏁癰adEmptyCheck(value){returnObject.keys(value).length===0;}badEmptyCheck(newString());//true馃槺badEmptyCheck(newNumber());//true馃槺badEmptyCheck(newBoolean());//true馃槺badEmptyCheck(newArray());//true馃槺badEmptyCheck(newRegExp());//true馃槺badEmptyCheck(newFunction());//true馃槺badEmptyCheck(newDate());//true馃槺閫氳繃妫€鏌ユ瀯閫犲嚱鏁版潵瑙e喅璇姤閫氳繃娣诲姞鏋勯€犲嚱鏁版鏌ユ潵绾犳杩欎釜闂銆傚嚱鏁癵oodEmptyCheck(value){Object.keys(value).length===0&&value.constructor===Object;//馃憟鏋勯€犲嚱鏁版鏌goodEmptyCheck(newString());//false鉁単oodEmptyCheck(newNumber());//鍋団渽goodEmptyCheck(newBoolean());//鍋団渽goodEmptyCheck(newArray());//false鉁単oodEmptyCheck(newRegExp());//false鉁単oodEmptyCheck(newFunction());//鍋団渽goodEmptyCheck(newDate());//false鉁呬笉閿欙紝骞插緱濂金煈嶅鍏朵粬鍊艰繘琛岀┖妫€鏌ユ帴涓嬫潵锛岃鎴戜滑鍦ㄤ竴浜涘€间笂娴嬭瘯鎴戜滑鐨勬柟娉曪紝鐪嬬湅鎴戜滑寰楀埌浜嗕粈涔堭煣猣unctionisEmptyObject(value){returnObject.keys(value).length===0&&value.constructor===Object;}鍒扮洰鍓嶄负姝㈢湅璧锋潵涓嶉敊锛屽浜庨潪瀵硅薄瀹冭繑鍥瀎alse銆俰sEmptyObject(100)//falseisEmptyObject(true)//falseisEmptyObject([])//false馃毃浣嗚灏忓績锛佷互涓嬪€间細鎶涘嚭閿欒銆?/TypeError:鏃犳硶灏唘ndefined鎴杗ull杞崲涓簅bjectisEmptyObject(undefined);鏄┖瀵硅薄锛堢┖锛夛紱鏀硅繘瀵筺ull鍜寀ndefined鐨勭┖妫€鏌ュ鏋滀綘涓嶅笇鏈涘畠鎶涘嚭TypeError锛屼綘鍙互娣诲姞棰濆鐨勬鏌unctionisEmptyObject(value){returnvalue&&Object.keys(value).length===0&&value.constructor===Object;}B.鏃ф祻瑙堝櫒涓殑绌哄璞℃鏌ュ鏋滀綘闇€瑕佹敮鎸佹棫娴忚鍣ㄦ€庝箞鍔烇紵浼楁墍鍛ㄧ煡锛屽湪璋堣鏃ф祻瑙堝櫒鏃讹紝鎴戜滑鎸囩殑鏄疘E锛屾垜浠湁2涓€夐」锛屼娇鐢ㄦ湰鏈烘垨鍒╃敤搴撱€備娇鐢↗avaScript鍒ゆ柇绌哄璞ativeJS娌℃湁閭d箞绠€娲侊紝浣嗘槸鍒ゆ柇绌哄璞℃槸娌℃湁闂鐨勩€俧unctionisObjectEmpty(value){return(Object.prototype.toString.call(value)==='[objectObject]'&&JSON.stringify(value)==='{}');}瀵逛簬瀵硅薄锛屽畠杩斿洖true銆俰sObjectEmpty({});//true鉁卛sObjectEmpty(newObject());//true鉁呭叾浠栫被鍨嬬殑鏋勯€犲嚱鏁颁篃鍙互姝e父鍒ゆ柇馃槈isObjectEmpty(newString());//false鉁卛sObjectEmpty(newNumber());//鍋団渽isObjectEmpty(newBoolean());//鍋団渽isObjectEmpty(newArray());//鍋団渽isObjectEmpty(newRegExp());//鍋団渽isObjectEmpty(newFunction());//鍋団渽isObjectEmpty(newDate());//false鉁呰緭鍏ull鍜寀ndefined涓嶄細鎶ypeError銆俰sObjectEmpty锛堢┖锛夛紱//falseisObjectEmpty(undefined);//false浣跨敤澶栭儴搴撴鏌ョ┖瀵硅薄鏈夊ぇ閲忓閮ㄥ簱鍙敤浜庢鏌ョ┖瀵硅薄銆傝€屼笖澶ч儴鍒嗗鏃ф祻瑙堝櫒閮芥湁寰堝ソ鐨勬敮鎸侌煈峀odash_.isEmpty({});//trueUnderscore_.isEmpty({});//truejQueryjQuery.isEmptyObject({});//鐪熸鐨勫師鐢烿S搴撶瓟妗堟槸Depends锛佹垜闈炲父鍠滄璁╃▼搴忓敖鍙兘绠€鍗曪紝鍥犱负鎴戜笉鍠滄澶栭儴搴撶殑寮€閿€銆傚彟澶栵紝瀵逛簬杈冨皬鐨勫簲鐢ㄧ▼搴忥紝鎴戞噿寰楄缃閮ㄥ簱銆備絾鏄紝濡傛灉鎮ㄧ殑搴旂敤绋嬪簭宸茬粡瀹夎浜嗗閮ㄥ簱锛岄偅涔堣缁х画浣跨敤瀹冦€傛偍灏嗘瘮浠讳綍浜洪兘鏇翠簡瑙f偍鐨勫簲鐢ㄧ▼搴忋€傚洜姝わ紝閫夋嫨鏈€閫傚悎鎮ㄦ儏鍐电殑鏂规硶銆傝揪浜虹殑銆愪笁閫氥€戞槸灏忔櫤鎸佺画鍒嗕韩鐨勬渶澶у姩鍔涖€傛湰鍗氬濡傛湁閿欒鎴栧缓璁紝娆㈣繋杈句汉鐣欒█銆傛渶鍚庤阿璋㈠ぇ瀹剁殑瑙傜湅銆傜紪杈戣繃绋嬩腑鍙兘瀛樺湪鐨凚UG鏃犳硶瀹炴椂鑾风煡銆備箣鍚庝负浜嗚В鍐宠繖浜沚ug锛岃姳璐逛簡澶ч噺鐨勬椂闂村湪鏃ュ織璋冭瘯涓娿€傞『渚挎帹鑽愪竴涓ソ鐢ㄧ殑BUG鐩戞帶宸ュ叿Fundebug銆傚師鏂囷細https://www.samanthaming.com/...浜ゆ祦鏂囩珷姣忓懆鏇存柊銆傚彲浠ュ井淇℃悳绱⑩€滃ぇ鍗冧笘鐣屸€濋槄璇诲嵆鏃舵洿鏂帮紙姣斿崥鏂囨棭涓€涓ょ瘒锛夈€傝繖绡囨枃绔犲湪GitHub涓奾ttps://github.com/qq449245884/xiaozhi宸茬粡鏀跺綍锛屾暣鐞嗕簡寰堝鎴戠殑鏂囨。銆傛杩庢槑鏄熷拰瀹岀編銆傞潰璇曞彲浠ュ弬鑰冭€冪偣銆備篃鍏虫敞鍏紬鍙凤紝鍚庡彴灏辫兘鐪嬪埌绂忓埄浜嗐€備綘璇村浜嗐€?/p>