0
0

JavaScriptの復習③

Posted at

はじめに

今回は、Chapter4の復習をまとめていきます。これを踏まえて、CSSのクラスを切り替えで出来ることを考えます。

背景色を切り替える

See the Pen 背景色を切り替える by Uka Suzuki (@uukasuzuki_) on CodePen.

JavaScriptのコード解説

const btn = document.querySelector("#btn");
btn.addEventListener("click", () => {
  document.body.classList.toggle("dark-theme");
  if (btn.textContent === "ダークモードにする") {
    btn.textContent = "ライトモードにする";
  } else {
    btn.textContent = "ダークモードにする";
  }
});

上記のコードを分解すると、下記の通りになります。

const btn = document.querySelector("#btn");
  • HTMLドキュメント内にあるidがbtnである要素を取得し、それを変数btnに格納しています。.querySelector メソッドを使って、CSS セレクタ(ここでは #btn)に一致する最初の要素を選択しています。
btn.addEventListener("click", () => {
  • btn.addEventListener("click", () => { は、ボタンのような btn 要素に対して「クリックイベント」が発生したときに、指定された処理(関数)を実行するためのコードです。
document.body.classList.toggle("dark-theme");
  • document.body.classList.toggle("dark-theme");は、body 要素に対してクラス名 "dark-theme" を付けたり外したりするコードです。

  • classList.toggle("dark-theme"): "dark-theme" というクラスが body 要素にすでに存在している場合はそのクラスを削除し、存在していない場合はクラスを追加します。
if (btn.textContent === "ダークモードにする") {
    btn.textContent = "ライトモードにする";
} else {
    btn.textContent = "ダークモードにする";
}
  • if (btn.textContent === "ダークモードにする")は、btnのテキスト内容 (textContent)が "ダークモードにする"と等しいかをチェックします。

  • btn.textContent = "ライトモードにする";は、もしボタンのテキストが "ダークモードにする"であれば、これを "ライトモードにする"に変更します。

  • else { btn.textContent = "ダークモードにする"; }は、テキストが "ダークモードにする" でない場合は、テキストを "ダークモードにする"に戻します。

    このif~else文の構成を簡略化して、分かりやすくしたコードが以下の通りになります。
if (条件) {
  // 条件が true の場合に実行される処理
} else {
  // 条件が false の場合に実行される処理
}
  • if(条件)の条件の部分には、trueまたはfalseになる評価式(論理式)を記述します。ここがtrueの場合、ifブロック内の処理が実行されます。

    elseは、ifの条件がfalseだった場合、実行される処理をelseブロック内に記述します。

比較演算子の種類

演算子 意味
A === B AとBが厳密に等しいか 5 === '5'は「false」
A == B AとBが等しいか 5 == '5'は「true」
A > B AがBを超えるか 5 > 3 は「true」
A < B AがB未満か 3 < 5 は「true」
A >= B AがB以上か 5 >= 3 は「true」
A <= B AがB以下か 3 <= 5 は「true」
A !== B AとBが厳密に等しくないか 5 !== '5'は「true」
A != B AとBが等しくないか 5 != '6'は「true」

まとめ

今回は、if~else文の詳細についてまとめました。次回も引き続き、CSSでの切り替えや非表示について書き留めていきます。

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0