如果声明出于某种原因表现得很奇怪
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);
另一答案
这并不奇怪。
您正在使用三重相等比较,并且可能,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);
以上是关于如果声明出于某种原因表现得很奇怪的主要内容,如果未能解决你的问题,请参考以下文章