私はMoment.JSを使って、現在の日が日曜日か土曜日かをチェックしています。そうでない場合は、何らかの操作を行います。ここで JavaScriptのElse-Ifステートメントは、平日のMoment.jsで異常な動作を引き起こすようです。
は私のコードです:私にlet currentDay = moment().weekday();
if(currentDay !== 0 || currentDay !== 6){
doSomeOperation();
} else { console.log("we should get here on a Sunday"); }
この完全な理にかなって - currentDayが、その後doSomeOperation();
日曜日または土曜日でない場合(コンテキストの場合、私は日曜日にこれを実行しているよ。)しかし
それは失敗し、if
ブロックのdoSomeOperation();
メソッドを実行します。私は可能なすべての組み合わせでこれを実行しましたが、それでも失敗します。その後、別々に実行することに決めました。
if(currentDay !== 0){
doSomeOperation();
} else { console.log('you should get here'); }
これは成功しました - 私はelse
ブロックに行きます。これが意味をなさない - それが成功すれば、なぜ上記は失敗するのだろうか?
私は最終的にこれにラウンドそれを変更:
if ((currentDay === 0 || currentDay === 6)){
console.log('you should get here');
} else { doSomeOperation() }
をこれが成功したと、私は「あなたがここに来る必要がある」プリントアウト。私が演算子を逆変換すると、すべてのチェックが成功します。私の質問は私が間違っているのは何ですか?
こんにちは@Nina適用できます - お返事に感謝を。なぜ私は演算子を反転させた、彼らはすべて論理ORで働いたのですか? – xn139
これはequalとorでは機能しません。なぜなら、すべての部分が時には 'true'であり、条件が常に' true'であるからです。 –
if文に問題があるとき、私はいつも質問に変えて意味があるかどうかを調べます。私ができない場合は、通常、コードに問題があります。あるいは、コードが複雑すぎるので、コードを分解する必要があります。 –