分享
三行代码  ›  专栏  ›  技术社区  ›  Cyberdelic Soup

Internet Explorer是否有某些不能使用的JS? - Does Internet Explorer have certain JS you can’t use?

  •  -1
  • Cyberdelic Soup  · 技术社区  · 3 月前

    我有一个贷款偿还计算器,可以在所有其他浏览器中正常工作,但不能在IE11中运行。

    我看了看IE11是否有某些JS不能使用,并将我的一些let改为var,但没有运气。

    <script>
        function loanRepay(){
           //Present Value 
            var pv = (parseFloat((document.getElementById("AB").value).replace(/[&\/\\#,+()$~%'":*?<>{}]/g,''), 10));
            //Interest Rate (Compounded Monthly)
            var r = ((parseFloat((document.getElementById("IR").value).replace(/[&\/\\#,+()$~%'":*?<>{}]/g,''), 10)) / 100) / 12;
            //Number of Compounds in a Period - Compounded monthly 
            var n = (parseFloat((document.getElementById("TL").value).replace(/[&\/\\#,+()$~%'":*?<>{}]/g,''), 10));
        //Payments per Month
        var pay = pv * (r / (1 - (1 + r)**-n));
        document.getElementById("pay").innerHTML = "$" + pay.toFixed(2);
        //Interest Paid
        var interest = (pay * n) - pv;
        document.getElementById("interest").innerHTML = "Interest Paid $" + interest.toFixed(2);
        //Total Payment
        var total = interest + pv;
        document.getElementById("total").innerHTML = "Total Amount $" + total.toFixed(2);
            //if form isn't filled out correctly
        if (isNaN(total))
        { alert('Please fill all fields with numerical values before pressing calculate.');} else{};
        }
    </script>
    

    IE没有抛出任何错误,只是没有运行。我仍然在学习JS,我认为这是非常简单的JS,所以我不确定它为什么不运行。

    1 回复  |  直到 3 月前
        1
  •  2
  •   adiga    3 月前

    求幂运算符( ** )是ES2016+功能,并且 it is not supported in IE 11 .将此行更改为:

    var pay = pv * (r / (1 - Math.pow(1 + r, -n)));
    

    你可以设置 babel 以及它在项目中针对特定浏览器的预设。如果它是一个小项目或者太复杂,您可以将代码粘贴到 Babel REPL 以获取发出来的代码。