記錄一個上個月寫東西腦抽寫的東西。
if (course !== 1 || course !== 2) {
return ApiResponseUtil.error(
400,
'invalid_course_or_subject',
'無效的課程或科目',
);
}
測試的時候發現條件有問題,就算 course 是 1 和 2 也符合這個條件。後面仔細一想發現確實不對:
course 值 | 結果 | 匹配的表示式 |
---|---|---|
0 | true | course !== 1 和 course !== 2 |
1 | true | course !== 2 |
2 | true | course !== 1 |
3 | true | course !== 1 和 course !== 2 |
那改成與就好了:
if (course !== 1 && course !== 2) {
return ApiResponseUtil.error(
400,
'invalid_course_or_subject',
'無效的課程或科目',
);
}
或者寫成!(course == 1 || course == 2)
也可以,這樣寫甚至更直觀。
後面上網搜了下發現這個叫德摩根定律,定律的第一條是非 A 或 B = 非 A 且非 B,第二條是 非 A 且 B = 非 A 或非 B。