{}
就是一个空对象,由于没有任何属性和方法,所以可以利用这一特点进行区别:
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; } |