JavaScript:使用typeof来检查字符串

Lea*_*cim 9 javascript

我正在进行一个codecademy.com练习,我们使用for-in语句循环一个对象并通过检查语言对象中属性的值是否是字符串来打印不同语言的hello typeof

我查看该值是否为字符串不起作用.我的循环给了我这个结果

english
french
notALanguage
spanish
Run Code Online (Sandbox Code Playgroud)

代码

   var languages = {
        english: "Hello!",
        french: "Bonjour!",
        notALanguage: 4,
        spanish: "Hola!"
    };

    // print hello in the 3 different languages
    for(var hello in languages){
        var value = hello;
        if (typeof value === "string"){
        console.log(value); 
        }
    }
Run Code Online (Sandbox Code Playgroud)

这些是练习的说明

如果你真的想到它,对象就不那么陌生了!

请记住,您可以使用typeof myVariable来计算变量的类型.我们现在关注的类型是"对象","字符串"和"数字".

回想一下for-in循环:

for(var x in obj){executeSomething(); }

这将逐个遍历obj的所有属性,并在每次循环运行时将属性名称分配给x.

让我们结合我们对这两个概念的了解.

检查语言对象.三个属性是字符串,而一个是数字.

使用for-in循环打印出三种打招呼方式.在循环中,您应该检查属性值是否为字符串,这样您就不会意外地打印数字.

Som*_*Guy 22

那是因为你正在检查key对象.要检查实际值,您应该做类似的事情object[key].试试这个:

 var languages = {
        english: "Hello!",
        french: "Bonjour!",
        notALanguage: 4,
        spanish: "Hola!"
    };

// print hello in the 3 different languages
for(var hello in languages){
    var value = languages[hello];
    if (typeof value === "string"){
    console.log(value); 
    }
}
Run Code Online (Sandbox Code Playgroud)