JavaScript:使用typeof来检查字符串

时间:2012-08-28 04:13:43

标签: javascript

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

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

typeof

代码

english
french
notALanguage
spanish

这些是练习的说明

  

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

     

请记住,您可以使用typeof找出变量的类型   MYVARIABLE。我们现在关注的类型是“对象”,   “string”和“number”。

     

回想一下for-in循环:

     

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

     

这将逐个浏览obj的所有属性并分配   每次循环运行时,属性名称为x。

     

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

     

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

     

使用for-in循环打印出三种打招呼方式。在里面   循环,你应该检查属性值是否是一个字符串,所以你   不要不小心打印一个号码。

6 个答案:

答案 0 :(得分:21)

那是因为你正在检查对象的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); 
    }
}

答案 1 :(得分:4)

以下是答案:(使用typeof,然后使用对象名称,后跟for语句中的var,并测试它是否等于“string”)

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

// print hello in the 3 different languages
for (var x in languages){
    if (typeof languages[x] === "string"){
        console.log(languages[x]);
    }
    else ;
}

答案 2 :(得分:1)

您正在检查对象的键,而不是值。检查对象的构造函数以确定其类型通常是一种很好的做法。

这样的事情:

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

for(i in languages) {

  if(languages[i].constructor === String) {
    console.log(languages[i])   
  };

};

答案 3 :(得分:1)

“字符串”与字符串不同。我找到了一种测试typeof字符串的方法。

RGB (int) = 

R * (256^2) + 

G * (256) + 

B

您当然可以使用“字符串”进行比较,但是任何实际的字符串都可以。

答案 4 :(得分:0)

以下编码对于仅执行字符串值也很有用。通过使用变量来使用变量来访问abject的属性列表之后,使用isNaN检查值是否为NotANumber。下面给出的代码对您有用

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

// print hello in the 3 different languages
for(a in languages)
{
if(isNaN(languages[a]))
console.log(languages[a]);
}

答案 5 :(得分:0)

这是为我工作的价值

for(var x in languages){

if(typeof languages[x] === "string"){
    console.log(languages[x]);
} else }