未捕获的类型错误:无法读取未定义的属性“toFixed”

Sar*_*hen 2 javascript onclick syntax-error tofixed

我知道其他人也抛出了这个错误,但我认为我有某种语法问题导致我发生这种情况。如果您能找到它,我将不胜感激。我是 JavaScript 新手,已经盯着这个简单的程序一个小时了。

这是 JavaScript:

"use strict";
var $ = function(id) {
    return document.getElementById(id);
};

var calculateFV = function(investmentAmount, interestRate, yearsAmount) {
    var futureValue;

    //get the future value after the amount of years entered
    for (var i = 1; i <= yearsAmount; i++ ) {
        var interest = futureValue * interestRate / 100;
        futureValue = futureValue + interest;
    }

    return futureValue.toFixed(2);
};

var processEntries = function(investmentAmount, interestRate, yearsAmount) {
    var investment = investmentAmount;
    var interest = interestRate;
    var years = yearsAmount;

    var futureValue = calculateFV(investment, interest, years);
    $("calculate").value = futureValue;
};

window.onload = function() {
  $("calculate").onclick = processEntries;  
};
Run Code Online (Sandbox Code Playgroud)

这是 HTML:

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>Future Value Calculator</title>
 <link rel="stylesheet" href="future_value.css">
 <script src="future_value.js"></script>
</head>

<body>
 <main>
     <h1>Future Value Calculator</h1>

     <label for="investment">Total Investment:</label>
     <input type="text" id="investment"><br>

     <label for="rate">Annual Interest Rate:</label>
     <input type="text" id="rate">%<br>

     <label for="years">Number of Years:</label>
     <input type="text" id="years"><br>

     <label for="future_value">Future Value:</label>
     <input type="text" id="future_value" disabled><br>

     <label>&nbsp;</label>
     <input type="button" id="calculate" value="Calculate"><br>      
 </main>
</body>
</html>

Run Code Online (Sandbox Code Playgroud)

非常感谢!

sye*_*yed 9

在某些情况下,当我们直接在html中绑定数据时,有可能需要一些时间才能加载,因此我们可能会收到上述错误。

就我而言,我使用了“?” 操作员

例如:- customer.price?.toFixed(2)


小智 5

类型错误:无法读取未定义的属性“toFixed”

以下代码可修复上述错误。

var test = 12.520;
console.log(Number(test).toFixed(2));
Run Code Online (Sandbox Code Playgroud)