JavaScript typeof应为number但返回string

时间:2014-01-17 09:56:38

标签: javascript typeof

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的字符串......

非常感谢你!

3 个答案:

答案 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"