为什么我从JavaScript中的I函数中获取NaN

Why do I get NaN from I function in JavaScript

本文关键字:函数 获取 NaN 中的 JavaScript 为什么      更新时间:2023-09-26

我有一个简单的JavaScript程序,可以将celsius转换为fahrenheit,反之亦然。但是有一个函数不起作用并返回NaN。

<script type="text/javascript">
    function CtoF() {
        c = parseInt(document.getElementById("celsiusTemp").value);
        fah = c * (9 / 5) + 32;
        document.getElementById("resC").innerHTML = fah;
    }
    function FtoC() {
        f = parseInt(document.getElementById("celsiusTemp").value);
        cel = (f - 32) * (5 / 2);
        document.getElementById("resF").innerHTML = cel;
    }
</script>
<body>
    <form>
        <p>Insert celsius temperatur:
            <input type="text" id="celsiusTemp" />
            <br>
        </p>
        <p>Insert fahrenheit temperatur:
            <input type="text" id="fahreheitTemp" />
            <br>
        </p>
        <input type="button" class="btn btn-success" onClick="CtoF()" Value="Calc Fahrenheit" />
        <input type="button" class="btn btn-warning" onClick="FtoC()" Value="Calc Celsius" />
    </form>
    <br/>
    <p>The Result is :
        <br/>
        <p>Result celsius to fahreinhet:</p><span id="resC"></span>
        <p>Result fahreinhet to celsius:</p><span id="resF"></span>
</body>

为什么在计算celsius)时会得到NaN

谢谢!!

您可能需要替换:

f = parseInt(document.getElementById("celsiusTemp").value);

带有:

f = parseInt(document.getElementById("fahreheitTemp").value);

如果单击Calc Celsius按钮,它将尝试从"摄氏度"字段中获取一个值。如果为空,parseInt将返回NaN:

isNaN(parseInt("")) === true

因为celsius函数读取了错误的输入,而且在测试函数时还没有输入该输入,所以它是一个空字符串,parseInt会将其转换为Not A Number。