需要檢查一個物件(Object)是否為空,即不包含任何元素。Javascript 中的物件就是一個字典,其中包含了一系列的鍵值對(Key Value Pair)。檢查一個物件是否為空,等價於檢查物件中有沒有鍵值對。寫成程式碼,形如:if (isEmptyObject(obj)) {// obj is empty} else {// not empty}至於 isEmptyObject 的實現,jQuery 中有一個很有想法的方式,請看程式碼:function isEmptyObject(obj) {for (var key in obj) {return false;}return true;}儘管 Javascript 沒有原生提供 isEmpty() 方法,但它提供了迭代器,可以用來遍歷所有的鍵值對。於是 jQuery 所做的事情,就是嘗試遍歷,如果有任何一個鍵值對,即說明物件非空,直接返回 false。從效率上來說,由於只讀取了一個元素,頂多加上一些跳出迴圈的開銷,實際效能不會比原生方法差太多。function isNullObj(obj){for(var i in obj){if(obj.hasOwnProperty(i)){return false;}}return true;}
需要檢查一個物件(Object)是否為空,即不包含任何元素。Javascript 中的物件就是一個字典,其中包含了一系列的鍵值對(Key Value Pair)。檢查一個物件是否為空,等價於檢查物件中有沒有鍵值對。寫成程式碼,形如:if (isEmptyObject(obj)) {// obj is empty} else {// not empty}至於 isEmptyObject 的實現,jQuery 中有一個很有想法的方式,請看程式碼:function isEmptyObject(obj) {for (var key in obj) {return false;}return true;}儘管 Javascript 沒有原生提供 isEmpty() 方法,但它提供了迭代器,可以用來遍歷所有的鍵值對。於是 jQuery 所做的事情,就是嘗試遍歷,如果有任何一個鍵值對,即說明物件非空,直接返回 false。從效率上來說,由於只讀取了一個元素,頂多加上一些跳出迴圈的開銷,實際效能不會比原生方法差太多。function isNullObj(obj){for(var i in obj){if(obj.hasOwnProperty(i)){return false;}}return true;}