JavaScript勉強中のNです。
今回はコードを書いているときに、やってしまったミスを3つご紹介します。
これは、初心者ミスあるあるでしょうか?学習中の方の参考になれば幸いです。

①value を忘れる

let word = document.getElementById(“word”);
let wordValue = word.value; //←ここの.valueを忘れました。

💥 何が起きる?
input要素そのものが入ってしまい、文字列ではなくなります。
input要素は「入力欄そのもの」で、valueは「その中に入力された文字」です。

そのため、以下のような処理がうまく動きません。
wordValue.includes(name)
➡エラーになる or 意図通り動かない(文字列ではないので includes が使えない)

💡 ポイント
・ getElementById は「要素」を取る
・ .value をつけて「中身(文字)」を取る
 「要素」と「値」は別物と意識するのが大事

②return をループ内に書く

関数の中にfor文があって、さらにそのfor文の中にif文があるコードを書いたのですが、returnの位置を間違えました。

💥 何が起きる?
 1回条件に入った瞬間に処理が全部終了する(for文だけでなく関数ごと終わる)

本当は
・すべての要素をチェックしたいのに
・途中で止まってしまう

💡 正しい考え方
return は「関数を終了する」
今回のようなケースでは:全部チェックしたい → returnは外

③addEventListener に ( ) をつける

button.addEventListener(“click”, putAway);
ここで ( ) をつけてしまいました。
button.addEventListener(“click”, putAway());

💥 何が起きる?
 ページ読み込み時に関数が実行されてしまう
・クリックしても何も起きない
・もしくは最初に処理が走る

💡 なぜ?
・putAway → 関数そのもの(渡している)
・putAway() → 関数を実行した結果

 addEventListener は
「あとで実行するために関数を渡す」もの(=クリックされたときに実行される)

まとめ

今回のミスはすべて、
「JavaScriptが何を扱っているのか」を意識できていなかったこと
が原因でした。

・要素なのか値なのか(①)
・処理の流れ(②)
・関数そのものか実行か(③)
このあたりは最初かなり混乱しやすいポイントだと思います。

どれも動かしてみて初めて気づくミスでした。
同じミスを何度もしてしまいますが、その分理解が深まっている気がします。
初心者の方は「自分だけじゃない」と思ってもらえたら嬉しいです。