如何检查 Javascript 中的变量是否为空?
if(response.photo) is empty {
do something
else {
do something else
}
response.photo
来自 JSON,有时它可能是空的,空数据单元格!我想检查它是否为空。
原文由 Jhon Woodwrick 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何检查 Javascript 中的变量是否为空?
if(response.photo) is empty {
do something
else {
do something else
}
response.photo
来自 JSON,有时它可能是空的,空数据单元格!我想检查它是否为空。
原文由 Jhon Woodwrick 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的解决方案:
function isEmpty(object) {
return (
(!object)
|| (object === undefined)
|| (object === null)
|| (object === '')
|| ((object?.length !== undefined) && (object.length === 0))
|| (typeof object === 'object' && Object.keys(object).length === 0)
);
}
用 Jest 进行测试:
describe('isEmpty should return `false` when the parameter have some truthy value.', () => {
test('Empty objects should return true', () => {
expect(utils.isEmpty([])).toBe(true);
expect(utils.isEmpty({})).toBe(true);
expect(utils.isEmpty('')).toBe(true);
expect(utils.isEmpty(undefined)).toBe(true);
expect(utils.isEmpty(null)).toBe(true);
});
test('Truthy objects should return false', () => {
expect(utils.isEmpty([1])).toBe(false);
expect(utils.isEmpty({a: undefined})).toBe(false);
expect(utils.isEmpty({a: 5})).toBe(false);
expect(utils.isEmpty({a: 5, b: 6, c: undefined})).toBe(false);
expect(utils.isEmpty('f00')).toBe(false);
expect(utils.isEmpty('0')).toBe(false);
});
})
原文由 Yam Mesicka 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
如果您正在测试空字符串:
如果您正在检查已声明但未定义的变量:
如果您正在检查可能未定义的变量:
如果您同时检查两者,即任一变量为空或未定义: