根据 for...in 遍历对象,如果存在则返回true,否则返回false。(false为空对象)
const checkNullObject = (parameter) => {
for (let i in parameter) {
return true;
}
return false;
}
使用 JSON.stringify() Reflect.ownKeys()方法来判断(true为空对象)
// 当遇到Symbol类型的,会判断失败
const checkNullObject = (parameter) => {
return JSON.stringify(parameter) === '{}';
}
const checkNullObject = (parameter) => {
return JSON.stringify(parameter) === '{}' && Reflect.ownKeys(parameter).length === 0;
}
使用 Object.keys() Reflect.ownKeys()来进行判断(true为空对象)
Object.keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组。
// 当遇到Symbol类型的,会判断失败
const checkNullObject = (parameter) => {
return parameter && Object.keys(parameter).length === 0 && parameter.constructor === Object;
}
const checkNullObject = (parameter) => {
return parameter && Object.keys(parameter).length === 0 && Reflect.ownKeys(parameter).length === 0;
}
使用 Object.getOwnPropertyNames() Object.getOwnPropertySymbols方法(true为空对象)
使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象
const checkNullObject = (parameter) => {
return parameter && Object.getOwnPropertyNames(parameter).length === 0 && Object.getOwnPropertySymbols(parameter).length === 0;
}
使用 Reflect.ownKeys()方法(true为空对象)
const checkNullObject = (parameter) => {
return parameter && Reflect.ownKeys(parameter).length === 0;
}
const vv = { [Symbol()]: 'vv' }
checkNullObject(null)
checkNullObject(undefined)
checkNullObject('')
checkNullObject(new String())
checkNullObject(new Date())