{}
就是一個空對象,由於沒有任何屬性和方法,所以可以利用這一特點進行區別:
1 2 3 4 5 6 7 8 | function isEmpty (object) { for (var i in object) { // 存在屬性或方法,則不是空對象 reutrn false; } return true; } |
代碼測試如下:
1 2 | isEmpty({}); // true isEmpty(null); // true |
JavaScript裏有個坑,即null
也是個Object呀!!
如下代碼輸出:
1 2 3 4 5 | // 輸出 object console.log((typeof null)); // 輸出 [object Null] console.log(Object.prototype.toString.call(null)); |
所以要更加具體的區分出null undefined,稍加改進如下:
1 2 3 4 5 6 7 8 9 10 11 | function isEmpty (object) { if (object === null || object === undefined) { return false; } for (var i in object) { // 存在屬性或方法,則不是空對象 reutrn false; // sodino.com } return true; } |