如果声明出于某种原因表现得很奇怪

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果声明出于某种原因表现得很奇怪相关的知识,希望对你有一定的参考价值。

所以我有一个if语句检查下拉列表的值。用户必须至少选择其中一个才能继续。值只是数字。我的if语句检查,基本上,值等于零:

if (numChildren === 0 && numAdults === 0)
    Than do this

但由于某种原因,它不断返回虚假。我有控制台登录numChildren和成年人,看看有什么价值,他们是零我不知道为什么它不工作我已经把“!”在它之前使它成为真实然后它仍然是假的。这是一个非常奇怪的错误。

$("#Discounts").on("click", function () 
        let numChildren = $("#children").val();
        let numAdults = $("#adults").val();
        console.log("Adults: " + numAdults + "\nChildren: " + numChildren);
        console.log(numChildren === 0 && numAdults === 0);
        if (numChildren === 0 && numAdults === 0) 
            alert("You must select");
            $("#children").val(1);
        
    );
答案

当在if语句中使用3个equals时,numChildren必须是与0(整数)相同的类型和值,而不仅仅是0。

尝试更改为2等于:

if (numChildren == 0 && numAdults == 0) 
            alert("You must select");
            $("#children").val(1);
        

Reference

另一答案

这并不奇怪。

您正在使用三重相等比较,并且可能,numChildren包含一个字符串形式的数字(如“0”),您将其与zero作为实际数字进行比较。

它应该与:

numChildren == 0 && numAdults == 0

要么

Number(numChildren) === 0 && Number(numAdults) === 0

这是官方参考:https://tc39.github.io/ecma262/#sec-strict-equality-comparison

另一答案

你可以试试这个:

if (Number(numChildren) === 0 && Number(numAdults) === 0) 
        alert("You must select");
        $("#children").val(1);

以上是关于如果声明出于某种原因表现得很奇怪的主要内容,如果未能解决你的问题,请参考以下文章

EditText表现得很奇怪

出于某种奇怪的原因,按钮被转换为复选框?

Java GUI为啥BoxLayout面板在其中有另一个BoxLayout面板时表现得很奇怪

为啥 nodejs 对我的代码表现得很奇怪?

Xcode 6.1 用 git 表现得很奇怪

我的 IOS 方向表现得很奇怪,不会听任何编程代码?