JavaScript typeof 应该是数字,但返回字符串



我的问题是我只想打印出我的对象的字符串属性。 但是当我检查属性的类型时,它也返回一个数字的字符串。

这是我的代码:

var languages = {
    english: "Hello!",
    french: "Bonjour!",
    notALanguage: 4,
    spanish: "Hola!"
};
for(var prop in languages){
    console.log(typeof prop);   
}

输出为:

string
string
string
string

我确定这只是一个容易解决的问题,但我不明白为什么typeof返回属性notALanguage的字符串......

prop将是属性名称的字符串表示形式。

你想测试typeof languages[prop]

当你使用for var .. in ..时,你正在迭代。因此,它有效地执行以下操作:

console.log(typeof 'english');
console.log(typeof 'french');
console.log(typeof 'notALanguage');
console.log(typeof 'spanish');

最新更新