Javascript 为什么我的if语句总是计算为true?
我需要检查一年中的几个月,看看这个月的最后一天是28日、29日、30日还是31日。我的问题是,第一个if语句的计算结果始终为true:Javascript 为什么我的if语句总是计算为true?,javascript,if-statement,Javascript,If Statement,我需要检查一年中的几个月,看看这个月的最后一天是28日、29日、30日还是31日。我的问题是,第一个if语句的计算结果始终为true: MOIS_I = 31 if (mois == "Janvier" || "Mars" || "Mai" || "Juillet" || "Août" || "Octobre" || "Décembre" || "1" || "3" || "5" || "7" || "8" || "10" || "12" || "01" || "03" || "05" || "
MOIS_I = 31
if (mois == "Janvier" || "Mars" || "Mai" || "Juillet" || "Août" || "Octobre" || "Décembre" || "1" || "3" || "5" || "7" || "8" || "10" || "12" || "01" || "03" || "05" || "07" || "08") {
window.alert("Le mois " + mois + " de l'année " + annee + " compte " + MOIS_I + " jours ");
}
此外,似乎有必要执行if(mois==“Janver”| | mois==“Février”| |……)
等等,但我想知道是否有更好的方法来执行
以下是完整的代码:
var mois, annee, test4, test100, test400;
const MOIS_P = 30;
const MOIS_I = 31;
const FEV_NORM = 28;
const FEV_BISSEX = 29;
const TEST_4 = 4;
const TEST_100 = 100;
const TEST_400 = 400;
mois = window.prompt("Entrez un mois de l'année", "");
annee = window.prompt("Entrez l'année de ce mois", "");
/* MOIS IMPAIRS */
if (mois == "Janvier" || "Mars" || "Mai" || "Juillet" || "Août" || "Octobre" || "Décembre" || "1" || "3" || "5" || "7" || "8" || "10" || "12" || "01" || "03" || "05" || "07" || "08") {
window.alert("Le mois " + mois + " de l'année " + annee + " compte " + MOIS_I + " jours ");
/* MOIS PAIRS */
} else if (mois == "Février" || "Avril" || "Juin" || "Septembre" || "Novembre" || "2" || "4" || "6" || "9" || "11" || "02" || "04" || "06" || "09") {
if (mois == "Février") {
test4 = parseInt(annee) % TEST_4;
test100 = parseInt(annee) % TEST_100;
test400 = parseInt(annee) % TEST_400;
if (test4 == 0) {
if (test100 != 0) {
window.alert("Le mois " + mois + " de l'année " + annee + " compte " + FEV_BISSEX + " jours ");
} else {
window.alert("Le mois " + mois + " de l'année " + annee + " compte " + FEV_NORM + " jours ");
}
} else if (test400 == 0) {
window.alert("Le mois " + mois + " de l'année " + annee + " compte " + FEV_BISSEX + " jours ");
} else {
window.alert("Le mois " + mois + " de l'année " + annee + " compte " + FEV_NORM + " jours ");
}
} else {
window.alert("Le mois " + mois + " de l'année " + annee + " compte " + MOIS_P + " jours ");
}
} else {
window.alert("Apocalypse!");
}
测试4、测试100、测试400用来测试一年是否是闰年(也就是说二月有29天而不是28天)
谢谢大家! 对于
if
语句,是的,您总是需要添加mois=
部分,否则您将检查字符串“Fevrier”的布尔值,而不是将其与mois
变量值进行比较
就您试图实现的一般结果而言,标准库中可能有许多更简单的方法可供您使用。如果这是JavaScript,请参见例如,关于
If
语句,是的,您始终需要添加mois=
部分,否则您将检查字符串“Fevrier”的布尔值,而不是将其与mois
变量值进行比较
就您试图实现的一般结果而言,标准库中可能有许多更简单的方法可供您使用。如果这是JavaScript,请参见,例如…以下是我将如何处理它:
parseInt()
月份%2==1
,则为奇数月:
- 如果
:适当处理闰年year%400==0 | | year%100==0 | | | year%4==0
- 其他:返回30
以下是我将如何着手的:
parseInt()
月份%2==1
,则为奇数月:
- 如果
:适当处理闰年year%400==0 | | year%100==0 | | | year%4==0
- 其他:返回30
这将给出一个月的最后一天这里有一个更好的方法来检查一大堆字符串。将所有允许的名称放在对象(通常称为映射)中,然后可以使用一行代码检查名称是否在映射中:
var names = {
"Janvier": true, "Mars": true, "Mai": true, "Juillet": true,
"Août": true, "Octobre": true, "Décembre": true,
"1": true, "3": true, "5": true, "7": true, "8": true, "10": true, "12": true,
"01": true, "03": true, "05": true, "07": true, "08": true
};
if (names[mois] === true) {
window.alert("Le mois " + mois + " de l'année " + annee + " compte " + MOIS_I + " jours ");
}
这里有一个更好的方法来检查一大堆字符串。将所有允许的名称放在对象(通常称为映射)中,然后可以使用一行代码检查名称是否在映射中:
var names = {
"Janvier": true, "Mars": true, "Mai": true, "Juillet": true,
"Août": true, "Octobre": true, "Décembre": true,
"1": true, "3": true, "5": true, "7": true, "8": true, "10": true, "12": true,
"01": true, "03": true, "05": true, "07": true, "08": true
};
if (names[mois] === true) {
window.alert("Le mois " + mois + " de l'année " + annee + " compte " + MOIS_I + " jours ");
}
这里有一个缩短您的
if()
条件的建议:RegExp对象(尽管这不会回答您的问题)
同样的
if (
mois == "Janvier" || mois == "Mars" || mois == "Mai" || mois == "Juillet" ||
mois == "Août" || mois == "Octobre" || mois == "Décembre" || mois == "1" ||
mois == "3" || mois == "5" || mois == "7" || mois == "8" || mois == "10" ||
mois == "12" || mois == "01" || mois == "03" || mois == "05" || mois == "07" ||
mois == "08"
)
if (
mois == "Février" || mois == "Avril" || mois == "Juin" || mois == "Septembre" ||
mois == "Novembre" || mois == "2" || mois == "4" || mois == "6" || mois == "9" ||
mois == "11" || mois == "02" || mois == "04" || mois == "06" || mois == "09"
)
及
同样的
if (
mois == "Janvier" || mois == "Mars" || mois == "Mai" || mois == "Juillet" ||
mois == "Août" || mois == "Octobre" || mois == "Décembre" || mois == "1" ||
mois == "3" || mois == "5" || mois == "7" || mois == "8" || mois == "10" ||
mois == "12" || mois == "01" || mois == "03" || mois == "05" || mois == "07" ||
mois == "08"
)
if (
mois == "Février" || mois == "Avril" || mois == "Juin" || mois == "Septembre" ||
mois == "Novembre" || mois == "2" || mois == "4" || mois == "6" || mois == "9" ||
mois == "11" || mois == "02" || mois == "04" || mois == "06" || mois == "09"
)
这里有一个缩短您的
if()
条件的建议:RegExp对象(尽管这不会回答您的问题)
同样的
if (
mois == "Janvier" || mois == "Mars" || mois == "Mai" || mois == "Juillet" ||
mois == "Août" || mois == "Octobre" || mois == "Décembre" || mois == "1" ||
mois == "3" || mois == "5" || mois == "7" || mois == "8" || mois == "10" ||
mois == "12" || mois == "01" || mois == "03" || mois == "05" || mois == "07" ||
mois == "08"
)
if (
mois == "Février" || mois == "Avril" || mois == "Juin" || mois == "Septembre" ||
mois == "Novembre" || mois == "2" || mois == "4" || mois == "6" || mois == "9" ||
mois == "11" || mois == "02" || mois == "04" || mois == "06" || mois == "09"
)
及
同样的
if (
mois == "Janvier" || mois == "Mars" || mois == "Mai" || mois == "Juillet" ||
mois == "Août" || mois == "Octobre" || mois == "Décembre" || mois == "1" ||
mois == "3" || mois == "5" || mois == "7" || mois == "8" || mois == "10" ||
mois == "12" || mois == "01" || mois == "03" || mois == "05" || mois == "07" ||
mois == "08"
)
if (
mois == "Février" || mois == "Avril" || mois == "Juin" || mois == "Septembre" ||
mois == "Novembre" || mois == "2" || mois == "4" || mois == "6" || mois == "9" ||
mois == "11" || mois == "02" || mois == "04" || mois == "06" || mois == "09"
)
这似乎不需要复杂的日期数学:
var SomeDate = new Date(2012, 10); // November, 2012
SomeDate.setDate(SomeDate.getDate() - 1); // go back one day
var DaysInMonth = SomeDate.getDate();
这似乎不需要复杂的日期数学:
var SomeDate = new Date(2012, 10); // November, 2012
SomeDate.setDate(SomeDate.getDate() - 1); // go back one day
var DaysInMonth = SomeDate.getDate();
什么语言?这有点重要。看起来可能是JavaScript,但请注意,
const
在标准JavaScript中尚未出现。请注意,非空字符串将始终计算为true,因此如果(/*任何条件|*/“此处的任何字符串”)
将始终返回true。但是,值null、false本身、未定义和空字符串将计算为false。什么语言?这有点重要。看起来可能是JavaScript,但请注意,const
在标准JavaScript中尚未出现。请注意,非空字符串将始终计算为true,因此如果(/*任何条件|*/“此处的任何字符串”)
将始终返回true。但是,值null、false本身、未定义和空字符串将计算为false.interest。就在几天前,我正在读关于闰年的书,我学到了一些我不知道的东西,所以我想与大家分享。有一个例外,很有趣。就在几天前,我正在读关于闰年的书,我学到了一些我不知道的东西,所以我想与大家分享。一个例外是。这是我的第一个javascript作业,这似乎是正确的,但我还没有完成。这是我的第一个javascript作业,这似乎是正确的,但我还没有完成。