亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript新手:剩余卡路里

Javascript新手:剩余卡路里

慕森王 2023-07-14 10:23:15
我是個新人,現在正在練習函數我這樣做是為了創建一個簡單的剩余卡路里計算器,但我想問:當我最初創建一個已經計算了calcalsMen和calcalsToday之間的差異并將其命名為calcalsLeft 的值時(所以我字面意思是“讓 calcalsLeft = calcalsMen - calcalsToday ”),但它得出了NaN,這在某種程度上是可以理解的。但是當我在alert()中這樣做時,它明白了我想要什么(例如“你有”+ (caloriesMen-caloriesToday) +“今天還剩下消耗的卡路里!”)你能告訴我這是為什么嗎?您將如何編寫這段代碼(更好/更干凈)?我的代碼和變量:let gender;let caloriesMen = 2500;let caloriesWomen = 2000;let caloriesToday;function calCalc() {gender = prompt('Are you man or woman?')     if (gender == 'man') {        caloriesToday = prompt('How many calories have you already consumed today?');        alert('You have ' + (caloriesMen - caloriesToday) + ' calories left to consume today!');    } else if (gender == 'woman') {        caloriesToday = prompt('How many calories have you already consumed today?');        alert('You have ' + (caloriesWomen - caloriesToday) + ' calories left to consume today!');    }    }calCalc();謝謝你!
查看完整描述

3 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

嘗試定義caloriesToday為整數,let caloriesToday = 0;否則它的值將是undefined這樣你不能從另一個數字中減去它



查看完整回答
反對 回復 2023-07-14
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

let gender;

let caloriesMen = 2500;

let caloriesWomen = 2000;

let caloriesToday;

let caloriesLeft;

function calCalc() {


gender = prompt('Are you man or woman?') 

    if (gender == 'man') {

        caloriesToday = prompt('How many calories have you already consumed today?');

        caloriesLeft = caloriesMen - caloriesToday;

        alert('You have ' + caloriesLeft + ' calories left to consume today!');

    } else if (gender == 'woman') {

        caloriesToday = prompt('How many calories have you already consumed today?');

        caloriesLeft = caloriesWomen - caloriesToday;

        alert('You have ' + caloriesLeft + ' calories left to consume today!');

    }

    

}


calCalc();


查看完整回答
反對 回復 2023-07-14
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

您需要初始化變量以避免undefined值污染它所接觸的所有內容。


“更清晰的代碼”是一個品味問題。我個人會避免使用帶有不同性別鍵的對象的 if/else。如果沒有必要,不要使用全局變量。在函數內定義變量效果很好。


function calCalc() {

? ? let gender = prompt('Are you man or woman?');

? ? let caloriesPerGender = {'man': 2500, 'woman': 2000};

? ? let caloriesToday = prompt('How many calories have you already consumed today?');

? ? alert('You have ' + (caloriesPerGender[gender] - caloriesToday) + ' calories left to consume today!');

}


calCalc();

您可能還想檢查您的輸入,如果有人在性別上輸入“monkey”或在卡路里輸入中輸入“abc”,您的函數將會崩潰。


查看完整回答
反對 回復 2023-07-14
  • 3 回答
  • 0 關注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號