inputDate
が2回宣言されています。
MDN let や MDN const を使って宣言すると、重複した宣言を エラーで知ることができます。
年、月、日の3つのうち、すべて入力されていることが条件なら、
配列に格納して配列長をチェックする方法があります。
javascript
1function showUserWeekDay() {
2 let inps = [
3 document.getElementById("userYear").value||void 0,
4 document.getElementById("userMonth").value||void 0,
5 document.getElementById("userDate").value||void 0
6 ].filter(v=>isFinite(v));
7
8 let answer = document.getElementById("answer");
9 answer.innerHTML = "";
10
11 if ( inps.length === 3 ) { // すべて入力されている場合
12 let WeekChars = [ "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日" ];
13 let cmputedDate = new Date( inps[0], inps[1] - 1, inps[2] );
14 answer.innerHTML = `結果:${WeekChars[cmputedDate.getDay()}です。`);
15 }
16}
17
追記)
ご質問のコードでは、検索ボタンを押したときに「結果」を求めるために入力値をチェックする実装です。
(上記内容もその実装に合わせています)。
JavaScriptで年月日が空白の時は曜日検索ボタンをクリックできないようにするには
検索ボタンの disabled
属性を動的に書き換えることになります。
この場合、別途、入力フォームに変化が起きたときに、3つの値が入力されているかを確認するイベントリスナを定義することになります。