使用typeof检查对象属性不起作用

时间:2014-06-15 03:24:59

标签: javascript typeof

我有一个对象,我需要检查属性以查看它们是否全部为strings,如果是,则返回true,但我总是返回true

function StringsObj(x) {
        for (var prop in x) {
            if(typeof x[prop] === "string") {
                return true;
                }
            else {
                return false;
            }

        }
    } 

var student = {
        name: "Judy",
        class: "freshman",
        age: 19,
        honors: true
    };

StringsObj(student)

1 个答案:

答案 0 :(得分:2)

这是因为在第一次检查后,函数返回true"Judy"是字符串类型)并停止执行。你可以这样做:

function StringsObj(x) {
    for (var prop in x) {
        if(typeof x[prop] !== "string") {
            return false;
        }
    }
    return true;
} 

JSFiddle