簡體   English   中英

功能的全局變量放置

[英]Global variable placement for functions

我目前正在學習一個JavaScript類,並具有以下任務:“設計一個JavaScript程序,要求用戶輸入兩個數字,然后將這兩個數字作為參數傳遞給四個算術函數:加,乘,除和模。函數應將值返回到顯示它們的調用模塊。”

    <body>
        <h1>Number Functions</h1>
        <!-- FORM START -->
        <form name="Numbers">
        First number:
        <br/>
        <input type="number" name="number1"/>
        <br/>
        Second Number:
        <br/>
        <input type="number" name="number2"/>
        <p/>
        <input type="button" value="Submit" onclick="showInfo()"/>
        <p/>
        <textarea rows="8" colspan="150" name="info" readonly="true" value=""></textarea>
    </form>
<script type="text/javascript">
function showInfo() {
    // Declare and get variables
    var firstNumber = parseFloat(document.Numbers.number1.value); // first number
    var secondNumber = parseFloat(document.Numbers.number2.value); // second number


    // Four mathematical functions
    function add(num1, num2) { 
    var sum = num1 + " + " + num2 + " = " + (num1+num2).toFixed(2) + "\n";
    return sum;
    }
    function multiply(num1, num2) {
    var product = num1 + " \u00d7 " + num2 + " = " + (num1*num2).toFixed(2) + "\n";
    return product;
    }
    function divide(num1, num2) {
    var dividend = num1 + " / " + num2 + " = " + (num1/num2).toFixed(2) + "\n";
    return dividend;
    }
    function modulus(num1, num2) {
    var surplus = num1 + " % " + num2 + " = " + (num1%num2).toFixed(2);
    return surplus;
    }

    var total = add(firstNumber,secondNumber) + multiply(firstNumber,secondNumber) + divide(firstNumber,secondNumber) + modulus(firstNumber,secondNumber);

    document.Numbers.info.value = total;
    // I need this function to get the results from the four above and put them in the textarea!
    }

</script>
</body>

我不確定要如何獲取這四個函數的結果並顯示結果,但我確實懷疑我的代碼無法正常工作的許多原因是由於變量放置不正確。 這是在線課程,課本太可怕了! 因此,如果您可以向我指出正確的方向(或多個正確的方向),那就太好了。

這有很多問題。

  1. 首先,您不應該在腳本的頂部設置num1和num2。 它們將開始未設置,因此您應該在showInfo函數中檢索它們。
  2. 您不會從函數中返回任何東西,應該返回
  3. 您實際上並沒有在showInfo中調用您的函數,而是將其強制為字符串,從而看到了奇怪的行為。
  4. 聽起來您應該傳入num1和num2,而不要依賴全局變量來訪問它們。 您需要傳遞它們並使每個函數接受兩個變量。

試試這樣的小提琴: https : //jsfiddle.net/oLb1vzrb/

// Four mathematical functions
function add(num1, num2) {
  return num1 + " + " + num2 + " = " + (num1 + num2).toFixed(2);
}

function multiply(num1, num2) {
  return num1 + " \u00d7 " + num2 + " = " + (num1 * num2).toFixed(2);
}

function divide(num1, num2) {
  return num1 + " / " + num2 + " = " + (num1 / num2).toFixed(2);
}

function modulus(num1, num2) {
  return num1 + " % " + num2 + " = " + (num1 % num2).toFixed(2);
}

function showInfo() {
    // Declare and get variables
    var num1 = parseFloat(document.Numbers.number1.value); // first number
    var num2 = parseFloat(document.Numbers.number2.value); // second number

  document.Numbers.info.value = add(num1, num2) + multiply(num1, num2) + divide(num1, num2) + modulus(num1, num2);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM