2015-04-23 107 views
0

此JavaScript代碼運行成功,但我認爲它不會通過它的「其他」語句,因爲它不打印它的控制檯...爲什麼?或條件從未評估爲真

i = 0; 
    for(var i=1; i<4; i++) { 
    var crazy = prompt("would you marry me?"); 
     if(crazy === "Yes"|| "yes") { 
      console.log("hell ya!"); 
     } 
    /* when it asks "will you marry me" and if the user says either "No" or  "no", it does't print "ok..I'' try again next time". instead, it still says "hell ya !" */ 
    else if (crazy ==="No" ||"no") { 
     console.log("ok..I'll try again next time !"); 
    } 
} 
var love = false; 
do { 
     console.log("nonetheless, I LOVE YOU !"); 
} 
while(love); 
+0

條件的語法不正確。你需要再次檢查變量。 '瘋狂==='是'||瘋狂==='yes'' –

+0

它應該是'瘋狂===「是」||瘋狂===「是」。'||'yes''不是_compared_,而是評估爲'true'。 – Xufox

+0

嘿,非常感謝這麼多傢伙! –

回答

0

試試這個..儘管是一小部分的代碼..這是一個奇怪的傢伙的求婚嗎?

i = 0; 
    for(var i=1; i<4; i++) { 
    var crazy = prompt("would you marry me?"); 
     if(crazy === "Yes"|| crazy ==="yes") { 
      console.log("hell ya!"); 
     } 
    /* when it asks "will you marry me" and if the user says either "No" or  "no", it does't print "ok..I'' try again next time". instead, it still says "hell ya !" */ 
    else if (crazy ==="No" ||crazy === "no") { 
     console.log("ok..I'll try again next time !"); 
    } 
} 
var love = false; 
do { 
     console.log("nonetheless, I LOVE YOU !"); 
} 
while(love); 
+0

嘿非常感謝你!這是很多的幫助..哈哈:))不,我沒有男朋友,但我想也許這可以幫助一些傢伙減少壓力和實際上有趣的只是告訴他們的女朋友進入他們的網站,然後哇! –

1

嘗試這樣的事情,

if(crazy.toUpperCase() === "YES") { 
    console.log("hell ya!"); 
} 
+0

非常感謝你。我很感激! –

0

這裏的解釋:

crazy === "Yes"||"yes" 

本聲明以下的事情:

  1. 它copares crazy是否具有價值是「,如果兩者都有(在這種情況下string)同類型
  2. 如果兩個類型不匹配或值不匹配,使用「是」

將這個成if語句,你會得到這樣的:

  • if塊,如果執行一切......
    1. crazyYes的值,如果兩者都具有相同類型 ...
    2. ...如果「是」

是什麼「是」本身意味着在if聲明?它被評估爲true

不是空字符串的每個字符串的評估結果爲true,每個空字符串評估爲false。請參閱MDN source

您可以通過鍵入像

!!'yes'; // true 
!!'test'; // true 
!!''; // false 

雙重否定語句到控制檯驗證這一點。

你需要做的是第二個比較:

if(crazy === "Yes"||crazy === "yes"){ 

else if(crazy === "No"||crazy === "no"){ 

另一種方法是crazy.toLowerCase() === "yes"只有一個比較。

+0

非常有價值的信息!非常感謝! –