JS/Jquery判斷對(duì)象為空的方法
發(fā)現(xiàn)了一個(gè)巧妙的實(shí)現(xiàn): 需要檢查一個(gè)對(duì)象(Object)是否為空,即不包含任何元素。Javascript 中的對(duì)象就是一個(gè)字典,其中包含了一系列的鍵值對(duì)(Key Value Pair)。檢查一個(gè)對(duì)象是否為空,等價(jià)于檢查對(duì)象中有沒(méi)有鍵值對(duì)。寫成代碼,形如:
if (isEmptyObject(obj)) {
// obj is empty
} else {
// not empty
}
至于 isEmptyObject 的實(shí)現(xiàn),jQuery 中有一個(gè)很有想法的方式,請(qǐng)看代碼:
function isEmptyObject(obj) {
for (var key in obj) {
return false;
}
return true;
}
盡管 Javascript 沒(méi)有原生提供 isEmpty() 方法,但它提供了迭代器,可以用來(lái)遍歷所有的鍵值對(duì)。于是 jQuery 所做的事情,就是嘗試遍歷,如果有任何一個(gè)鍵值對(duì),即說(shuō)明對(duì)象非空,直接返回 false。從效率上來(lái)說(shuō),由于只讀取了一個(gè)元素,頂多加上一些跳出循環(huán)的開(kāi)銷,實(shí)際性能不會(huì)比原生方法差太多。
function isNullObj(obj){
for(var i in obj){
if(obj.hasOwnProperty(i)){
return false;
}
}
return true;
}
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
移動(dòng)端翻頁(yè)插件dropload.js(支持Zepto和jQuery)
這篇文章主要為大家詳細(xì)介紹了移動(dòng)端翻頁(yè)插件dropload.js,支持Zepto和jQuery,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07
JavaScript閉包和作用域鏈的定義實(shí)現(xiàn)
這篇文章主要為大家介紹了JavaScript閉包和作用域鏈的定義與實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
javascript中的undefined 與 null 的區(qū)別 補(bǔ)充篇
在Javascript中有兩個(gè)值用來(lái)代表類似空值的概念,undefined和null,這兩個(gè)很容易被混淆,他們表示的是兩個(gè)不同的概念。2010-03-03
layui表單提交到后臺(tái)自動(dòng)封裝到實(shí)體類的方法
今天小編就為大家分享一篇layui表單提交到后臺(tái)自動(dòng)封裝到實(shí)體類的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
ES6?數(shù)組some()和every()的使用及說(shuō)明
這篇文章主要介紹了ES6?數(shù)組some()和every()的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
JS與HTML結(jié)合實(shí)現(xiàn)流程進(jìn)度展示條思路詳解
基于js與html相結(jié)合實(shí)現(xiàn)的流程進(jìn)度展示條,非常實(shí)用,在各大網(wǎng)站都可以用到,下面小編給大家?guī)?lái)了JS與HTML結(jié)合實(shí)現(xiàn)流程進(jìn)度展示條思路詳解,需要的朋友參考下吧2017-09-09
微信小程序?qū)崿F(xiàn)tab點(diǎn)擊切換
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)tab點(diǎn)擊切換,不滑動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07

