JavaScript typeof应为数字,但返回字符串
我的问题是,我只想打印出对象的属性,这些属性是字符串。但当我检查属性的类型时,它返回的字符串也是一个数字 这是我的密码:JavaScript typeof应为数字,但返回字符串,javascript,typeof,Javascript,Typeof,我的问题是,我只想打印出对象的属性,这些属性是字符串。但当我检查属性的类型时,它返回的字符串也是一个数字 这是我的密码: var languages = { english: "Hello!", french: "Bonjour!", notALanguage: 4, spanish: "Hola!" }; for(var prop in languages){ console.log(typeof prop); } 输出为: string st
var languages = {
english: "Hello!",
french: "Bonjour!",
notALanguage: 4,
spanish: "Hola!"
};
for(var prop in languages){
console.log(typeof prop);
}
输出为:
string
string
string
string
我确信这只是一个很容易解决的问题,但我不明白为什么
typeof
在使用变量时返回属性notalguage
的字符串。。在..
中,您正在迭代键。因此,它有效地做到了:
console.log(typeof 'english');
console.log(typeof 'french');
console.log(typeof 'notALanguage');
console.log(typeof 'spanish');
prop
将是属性名称的字符串表示形式
您想测试
typeof languages[prop]
的typeof
的输出总是一个字符串,由参数的类型决定
例如:
typeof languages[prop]
…for(var prop in languages){console.log(typeof languages[prop]);}谢谢你的建议,我对你的答案投了赞成票,但我会接受昆汀的答案,因为他的提示解决了我的问题。。
typeof 4 // # => "number"