3 回答

TA貢獻1801條經驗 獲得超8個贊
主要問題是haveDog == yes& haveDog == no。這里yes&no是字符串。所以不得不比較喜歡'haveDog === 'yes'。沒用===。其次humanAge,僅當用戶鍵入時才計算,yes否則它將undefined
function dogHuman(yes, no) {
var haveDog = prompt("Do you have a dog? " + "yes" + " or " + "no");
if (haveDog === 'yes') {
var dogAge = prompt("How old is your dog? ");
var humanAge = ((dogAge - 2) * 4) + 21;
alert("If your dog were human, it would be " + humanAge + " years old");
} else {
alert("Thank you for you attention");
}
}
dogHuman();

TA貢獻1859條經驗 獲得超6個贊
我不確定問題是什么,所以我將回顧一下我注意到的所有內容:
dogHuman
在沒有任何參數的情況下調用,并且查看您的代碼,它可能不應該有任何參數。Javascript(事實上,大多數語言)按順序做事,所以
var humanAge = ((dogAge - 2) * 4) + 21;
應該dogAge
首先確定。既然
haveDog
是拿一個prompt
,你可能想比較haveDog
而"yes"
不是僅僅yes
。"Do you have a dog? " + "yes" + " or " + "no"
可以重寫為"Do you have a dog? yes or no"
變量設置一次;每次運行它們時,它們都不會重新運行您設置的值;這種誤解很常見,這也是我認為早期humanAge
定義的來源。

TA貢獻2039條經驗 獲得超8個贊
你有幾個問題,
將適當的參數傳遞給函數調用。
在提示之后移動
humanAge
分配dogAge
,因為這需要首先發生。確保不要引用你的變量
function dogHuman(yes, no) {
var haveDog = prompt("Do you have a dog? " + yes + " or " + no);
if (haveDog === yes) {
var dogAge = prompt("How old is your dog? ");
var humanAge = ((dogAge - 2) * 4) + 21;
alert("If your dog were human, it would be " + humanAge + " years old");
dogHuman(yes, no); // Recursion
} else {
alert("Thank you for you attention");
}
}
dogHuman('yes', 'no'); // Pass your parameters into the call
添加回答
舉報