将 javascript 中的 2 个数字与 parseint 进行比较

我试图在 num1 和 num2 之间进行比较:


<form>


    <input placehoder="num1" type="text" id="num1"/>


    <input placehoder="num1" type="text" id="num2"/>


    <button type="button" id="comparar">Compara</button>


</form>

问题是,直到我发现要声明输入将是带有let num1 = parseInt(document.getElementById("num1").value);系统工作的命令的数字,但有时它没有显示正确的警报。


let compare = document.getElementById("comparar");




function comparator(){

    let num1 = parseInt(document.getElementById("num1").value);

    let num2 = parseInt(document.getElementById("num2").value);

    if ( num1 > num2){


            alert('num1 higher');


    }else if(num1 == num2){

        alert('are equal');

    }


    else{

        alert('num2 higher')

    }

}



compare.addEventListener('click', comparator);

有谁知道为什么不使用 parseInt 比较两个数字时会显示随机结果?,基本上它在比较什么?


谢谢


凤凰求蛊
浏览 134回答 4
4回答

慕尼黑8549860

您应该validate在比较之前将 number1 和 number2 设置type="number"为输入示例parseInt("1a")返回 1如果输入 1a 和 1,则显示相等。

皈依舞

如果没有 parseInt,您将比较两个“字符串”而不是两个“int”。它不是随机的,它按 1、2、3、... 的顺序取数字,你会得到类似的结果:"2" > "10" ==> true

慕雪6442864

如果不使用 parseInt,您将比较两个字符串。在 JavaScript 中,字符串按字母顺序与首字母进行比较,例如:“banana” > “apple” 将返回 true。如果第一个字母相等,则比较第二个字母,依此类推。大写字母优先于小写字母。

一只甜甜圈

表单中的输入是字符串对象。在由数字组成的字符串对象上调用 parsInt 会将其转换为数字对象。您可以使用 typeof 方法来检查类型。像这样:var num1 = "1"var num2 = 1console.log(typeof(num1)) // Output -> stringconsole.log(typeof(num2)) // Output -> number在此示例中,num1 是字符串对象,而 num2 是数字对象,即使它们具有相同的数字。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript