JavaScript 判断一个对象是否为空
水流云在 人气:6
本文介绍了几种判断一个对象是否为空方法。如有错误或建议,烦请指正。
**测试用例**
```js
test1 = 1;
test2 = {};
test3 = {a:1,b:2}
```
## 1. 判断 Object.keys() 的长度
```js
function _isNull(obj) {
if(Object.prototype.toString.call(obj)!=='[object Object]') {
return 'Type Error'
}
return Object.keys(obj).length === 0
}
_isNull(test1); // "Type Error"
_isNull(test2); // true
_isNull(test3); // false
```
## 2. for in 遍历对象的 keys
```js
function _isNull(obj) {
if(Object.prototype.toString.call(obj)!=='[object Object]') {
return 'Type Error'
}
for(keys in obj) {
return false
}
return true
}
_isNull(test1); // "Type Error"
_isNull(test2); // true
_isNull(test3); // false
```
## 3. Object.getOwnPropertyNames()
获取对象的自有属性名,空对象没有自有属性
```js
function _isNull(obj) {
if(Object.prototype.toString.call(obj)!=='[object Object]') {
return 'Type Error'
}
return Object.getOwnPropertyNames(obj).length === 0
}
_isNull(test1); // "Type Error"
_isNull(test2); // true
_isNull(test3); // false
```
## 4. JSON.stringify()
[JSON 对象介绍](https:/https://img.qb5200.com/download-x/developer.mozilla.org/zh-CNhttps://img.qb5200.com/download-x/docs/Web/JavaScript/Reference/Global_Objects/JSON)
先将对象转换成 JSON 字符串,然后比较
```js
function _isNull(obj) {
if(Object.prototype.toString.call(obj)!=='[object Object]') {
return 'Type Error'
}
return JSON.stringify(obj) === '{}'
}
_isNull(test1); // "Type Error"
_isNull(test2); // true
_isNull(test3); // false
```
加载全部内容