Javascript中判斷對(duì)象是否為空
發(fā)現(xiàn)了一個(gè)巧妙的實(shí)現(xiàn): 需要檢查一個(gè)對(duì)象(Object)是否為空,即不包含任何元素。Javascript 中的對(duì)象就是一個(gè)字典,其中包含了一系列的鍵值對(duì)(Key Value Pair)。檢查一個(gè)對(duì)象是否為空,等價(jià)于檢查對(duì)象中有沒有鍵值對(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 沒有原生提供 isEmpty() 方法,但它提供了迭代器,可以用來遍歷所有的鍵值對(duì)。于是 jQuery 所做的事情,就是嘗試遍歷,如果有任何一個(gè)鍵值對(duì),即說明對(duì)象非空,直接返回 false。從效率上來說,由于只讀取了一個(gè)元素,頂多加上一些跳出循環(huán)的開銷,實(shí)際性能不會(huì)比原生方法差太多。這是一個(gè)非常巧妙的實(shí)現(xiàn)。
注:有網(wǎng)友指出 ES5 中提供了 Object.getOwnPropertyNames 方法來獲取所有的元素鍵。它的返回值是一個(gè)數(shù)組,當(dāng)數(shù)組長(zhǎng)度為零時(shí),說明對(duì)象為空。
相關(guān)文章
promise處理多個(gè)相互依賴的異步請(qǐng)求(實(shí)例講解)
下面小編就為大家?guī)硪黄猵romise處理多個(gè)相互依賴的異步請(qǐng)求(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08javascript實(shí)現(xiàn)全局匹配并替換的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)全局匹配并替換的方法的總結(jié),十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-04-04Bootstrap模塊dropdown實(shí)現(xiàn)下拉框響應(yīng)
這篇文章主要為大家詳細(xì)介紹了Bootstrap下拉框模塊dropdown實(shí)現(xiàn)下拉框響應(yīng),感興趣的朋友可以參考一下2016-05-05靈活使用數(shù)組制作圖片切換js實(shí)現(xiàn)
這篇文章主要介紹了靈活使用數(shù)組制作圖片切換效果,js實(shí)現(xiàn)圖片切換特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07