我只是不明白如何& &和||工作。我寫了一小段代碼來幫助自己,這對我來說沒有任何意義。你會點擊一個按鈕並調用startGame()。JavaScript邏輯運算符的問題?
var startGame = function() {
var quizAnswers = {
name: prompt("What is your name?").toUpperCase(),
age: prompt("What is your age?"),
snack: prompt("What is your favorite type of snack out of the following: ice cream, apple, chips, cookies?").toUpperCase()
};
quizAnswers.confirmAge = function() {
while (isNaN(this.age) === true) {
this.age = prompt("The age that you entered- " + this.age + " -is not a number. Please enter a number.");
};
};
quizAnswers.confirmAge();
quizAnswers.confirmSnack = function() {
while ((this.snack !== "ICE CREAM") && (this.snack !== "APPLE") && (this.snack !== "CHIPS") && (this.snack !== "COOKIES")) {
this.snack = prompt("The snack you entered- " + this.snack + " -is unrecognized. Please enter: ice cream, apple, chips, or cookies.").toUpperCase();
};
};
quizAnswers.confirmSnack();
它會得到的姓名,年齡,以及最喜歡的零食,然後檢查,看看如果年齡是一個數字,進入小吃列出的選項之一。在調用confirmSnack函數中的while循環之後,我想出瞭如何使其工作,如上所示。但爲什麼它是& &而不是||。而且是有辦法縮短它喜歡:
while (this.snack !== ("ICE CREAM" && "APPLE" && "CHIPS" && "COOKIES")) {
this.snack = prompt("The snack you entered- " + this.snack + " -is invalid. Please enter: ice cream, apple, chips, or cookies.").toUpperCase();
};
所以問題是解釋爲什麼& &(和)是用來代替||(或),如果有一種方法來縮短這個代碼,所以我不必輸入「this.snack!==」四次。我不是專家,所以請儘量保持簡單。
嘗試朗讀表達式,對「!==」使用「不同於」。很顯然,「a與b不同,或者a與c不同」並不是你想要的邏輯,因爲它可以和b一樣,只要它與c不一樣。 – IMSoP
這與JavaScript無關,更像數學和邏輯。 –