Hello亲爱的程序员,
我的问题是我只打印出对象的属性,这些属性是字符串。但是当我检查属性的类型时,它还返回一个数字字符串..
这是我的代码:
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
的字符串......
非常感谢你!
答案 0 :(得分:8)
prop
将是属性 name 。
您想要测试typeof languages[prop]
答案 1 :(得分:4)
当您使用for var .. in ..
时,您正在迭代键。因此它有效地做了:
console.log(typeof 'english');
console.log(typeof 'french');
console.log(typeof 'notALanguage');
console.log(typeof 'spanish');
答案 2 :(得分:-2)
typeof
的输出始终是一个字符串,由参数类型决定。
E.g:
typeof 4 // # => "number"