2015-11-11 17 views
0

我建立了一個小程序,是一個挑戰,因爲我學習JavaScript。該程序建立在Math.random的函數上,它也使用條件語句和布爾賦值。JavaScript的 - 用簡單的程序(條件,隨機,布爾)

我的問題是:在下面我的代碼被告知,你沒有嚴格的平衡布爾correctGuess到真正的究竟是什麼原因,這意味着 應該怎麼辦if (correctGuess === true)後跟else語句或if (correctGuess)再其次是一個else語句。

這裏是代碼:

var correctGuess = false; 
var randomNumber = Math.floor(Math.random() * 6) + 1; 
var guess = prompt("I am thinking of a number between 1 and 6. What is it?"); 
if (parseInt(guess) === randomNumber) { 
    correctGuess = true; 
} else if (parseInt(guess) < randomNumber) { 
    var guessMore = prompt(" Sorry, your guess whas too low. Try again"); 
    if (parseInt(guessMore) === randomNumber) { 
     correctGuess = true; 
    } 
} else if (parseInt(guess) > randomNumber) { 
    var guessLess = prompt("sorry, your guess was too high. Try again"); 
    if (parseInt(guessLess) === randomNumber) { 
     correctGuess = true; 
    } 
} 
if (correctGuess) { 
    document.write("<p>You guessed the number!<p>"); 
} else { 
    document.write("<p>Sorry. The number was " + randomNumber + ".<p>"); 
} 
+1

要麼是完全有效的,決定是否使用下降到您的個人喜好了清晰度。我個人會使用後者,並減少額外的打字。 – phuzi

+0

phuzi如果您將它作爲答案發布,請接受您的答案,您更易於理解。我認爲現在不適合使用嚴格平等的操作符,因爲我剛開始學習它使代碼更易於閱讀和理解。 –

回答

5

,如果你需要檢查correctGuess變量boolean - >if (correctGuess === true)是您最佳的選擇。

沒有if (correctGuess)通話===你將有true有:correctGuess = {}correctGuess = []correctGuess = "string"correctGuess = 1

但是,如果你確定,那correctGuess變量始終是boolean(就像在你的代碼) - 你可以使用if (correctGuess)電話 - 它會完美地工作。

你可以閱讀更多關於此類型轉換 - http://www.w3schools.com/js/js_type_conversion.asp

+1

感謝,這是迄今爲止最容易理解的,我 –

+0

你會說這將是一個更安全的選擇去與「如果(正確的猜測===真)」? –

+0

是的。嚴格的平等比較更安全。也可能沒有必要。 – frikinside