我有这样的代码:
function doAThing(var1) {
return typeof var1 === "object" && Object.keys(var1).length > 11;
}
我遇到问题,当var1
不是对象时,函数会尝试返回最后一个语句的值:Object.keys(var1).length > 11)
显然,如果obj1
不是一个对象,我不想尝试获取它的密钥,或者它会被Cannot convert undefined or null to object
炸毁。
如何让这个函数返回一个布尔值,如果它不是一个对象,那么不要尝试检查var1
的键?
答案 0 :(得分:4)
尝试在您的情况下添加null
项检查,因为typeof null
也是object
:
function doAThing() {
return !bool1
&& var1 !== null
&& typeof var1 === "object"
&& Object.keys(var1).length > 11);
}