2014-01-17 21 views
0

嘿,我在codeacademy,我想弄清楚我的函数的结构有什么问题。我认为这很好,但它不起作用。谁能告诉我为什么?岩石纸剪刀的Javascript语法问题逻辑

var compare = function (choice1,choice2){ 
if("choice1 = choice2"){ 
    return ("The result is a tie!"); 
} 
}; 
compare(1,1); 

if ("choice1 = rock"){ 
    if ("choice2 = scissors"){ 
     return ("rock wins"); 
    } else { 
     return ("paper wins"); 
    } 
} 
+1

请检查的一些应用手册,谷歌的互联网。我会从这里开始http://jqfundamentals.com/chapter/javascript-basics – elclanrs

+0

你混淆了字符串变量 –

+0

我猜你是初学者?检查操作员。 ==或===等于。继续编码! –

回答

0

您的if声明不应被引用。通过将它们放在引号中,您正在评估非空字符串的真实性,它将始终由Javascript标准制定为true

此外,您的if语句中的比较使用单个=符号。逻辑比较应使用两个=符号(在类型转换后检查相等性)或三个=符号(如果类型不同,则失败)。

+0

我更新了代码,它告诉我choice1没有被定义? – riotgear

+0

*“您正在评估某些文本的值是否为真,这将通过JavaScript标准来判断为真”*呃?任何非空字符串评估为真! –

+0

糟糕,你是对的。更新了我的答案。 –

0

好的,我会咬你的...

你的条件语句用引号引起来。

编辑:还需要使用==(或===)进行比较

+0

谢谢你的叮咬。当我紧张不安的时候,我总是加上引号。 – riotgear

0

等于被==不是=

var compare = function (choice1,choice2){ 
    if(choice1 == choice2){ 
    return ("The result is a tie!"); 
    } 
}; 
compare(1,1); 

if (choice1 == "rock"){ 
    if (choice2 == "scissors"){ 
    return ("rock wins"); 
    } else { 
     return ("paper wins"); 
    } 
} 

而且你的报价放错了地方