首页 > 解决方案 > JavaScript 条件下的奇怪行为

问题描述

我刚刚解决了一些问题,但我不明白为什么会出现这种行为,这是我的 js 代码

function fibonacci () {
    let fibonacciNumber = document.getElementById("my-input").value;

    let numberInitialize = 0; 
    let numberNext = 1; 
    let sum = numberInitialize + numberNext;

    if (fibonacciNumber === "" || fibonacciNumber === 0) {
        return (0);
    }


    for (index = 1; index < fibonacciNumber; index++) 
    {
        numberInitialize = numberNext;

        numberNext = sum;

        sum = numberInitialize + numberNext;
        console.log(sum);
        console.log("premier tour");
    }
    console.log(sum);
    document.getElementById("fibo-result").innerHTML = `${sum}`;
}

所以在 html 方面,我只有一个输入,我写下了数字,我的问题与这行代码有关

if (fibonacciNumber === "" || fibonacciNumber === 0) {
    return (0);
}

当我写下 0 时,它仍在打印一个,但我这样写条件

if (fibonacciNumber === "" || fibonacciNumber <= 0) {
    return (0);
}

它的工作,当我得到 0 作为输入时,没有像我想要的那样打印任何东西,我的问题是:为什么当我把 fibonacciNumber === 0 返回(0)它不能正常工作它的 0,条件匹配不?

多谢你们

标签: javascript

解决方案


您将需要使用parseInt()然后将输入视为整数。

let fibonacciNumber = parseInt(document.getElementById("my-input").value);

推荐阅读