如何不返回布尔链中的最后一个对象

时间:2017-05-20 01:48:45

标签: javascript

我有这样的代码:

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的键?

1 个答案:

答案 0 :(得分:4)

尝试在您的情况下添加null项检查,因为typeof null也是object

function doAThing() {
    return !bool1
        && var1 !== null
        && typeof var1 === "object"
        && Object.keys(var1).length > 11);
}