見出し画像

Javascriptについて(2)

DOM操作

要素の取得と操作

getElementById

getElementById メソッドは、HTMLの id 属性で指定された要素を取得します。

<div id="example">Hello, World!</div>
<script>
  const element = document.getElementById("example");
  console.log(element.textContent); // "Hello, World!"
</script>

解説)
・document.getElementById("example"): id が example の要素を取得。
・textContent: 要素内のテキストを取得。

querySelector

querySelector メソッドは、CSSセレクターを使って最初に一致する要素を取得します。

<div class="example">Item 1</div>
<div class="example">Item 2</div>
<script>
  const element = document.querySelector(".example");
  console.log(element.textContent); // "Item 1"
</script>

解説)
・.example: クラス example を持つ最初の要素を取得。
・querySelectorAll を使うと、すべての一致する要素を取得できます。

イベントリスナーの設定

addEventListener を使うと、要素にイベントを登録できます。

<button id="clickMe">Click Me!</button>
<script>
  const button = document.getElementById("clickMe");
  button.addEventListener("click", () => {
    alert("Button clicked!");
  });
</script>

説明)
click: クリックイベント。
mouseover: マウスが要素に乗ったとき。
keydown: キーボードのキーが押されたとき。

オプション:
once: true を指定すると、イベントリスナーは1回だけ実行されます。

button.addEventListener("click", handleClick, { once: true });
function handleClick() {
  alert("This will run only once.");
}

非同期処理

setTimeout と setInterval

setTimeout
一定時間後に1回だけ関数を実行します。

setTimeout(() => {
  console.log("This message appears after 2 seconds.");
}, 2000);

説明)
第1引数: 実行する関数。
第2引数: 遅延時間(ミリ秒)。

setInterval
一定間隔で関数を繰り返し実行します。

let counter = 0;
const intervalId = setInterval(() => {
  counter++;
  console.log(`Counter: ${counter}`);
  if (counter === 5) {
    clearInterval(intervalId);
  }
}, 1000);

説明)
clearInterval
:繰り返し処理を停止するには、clearInterval を使用します。

Promise と async/await

Promise
非同期処理を表現するオブジェクトです。

const fetchData = new Promise((resolve, reject) => {
  setTimeout(() => {
    const success = true;
    if (success) {
      resolve("Data fetched successfully!");
    } else {
      reject("Error fetching data.");
    }
  }, 1000);
});

fetchData
  .then((data) => console.log(data)) // 成功時
  .catch((error) => console.error(error)); // 失敗時

async/await
async/await を使うと、非同期コードを同期的に記述できます。

async function getData() {
  try {
    const result = await fetchData; // Promise を待つ
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}
getData();

モジュール化

JavaScriptのモジュール化は、コードを再利用可能で保守しやすくするための重要な技術です。

ES6モジュール (import/export)

モジュールの作成
ファイル math.js:

export function add(a, b) {
  return a + b;
}
export const PI = 3.14159;

モジュールの利用
ファイル main.js:

import { add, PI } from './math.js';

console.log(add(5, 10)); // 15
console.log(PI); // 3.14159

デフォルトエクスポート:

// math.js
export default function subtract(a, b) {
  return a - b;
}

// main.js
import subtract from './math.js';
console.log(subtract(10, 5)); // 5

エラー処理

try/catch の使い方

try/catch を使うと、エラー発生時の挙動を制御できます。

try {
  const result = JSON.parse("invalid JSON");
  console.log(result);
} catch (error) {
  console.error("An error occurred:", error.message);
}

説明)
try ブロック内でエラーが発生した場合、catch ブロックが実行されます。
error.message: エラーメッセージを取得。

finally

finally ブロックは、エラーの有無に関係なく実行されます。

try {
  const result = JSON.parse('{"key": "value"}');
  console.log(result);
} catch (error) {
  console.error("An error occurred:", error.message);
} finally {
  console.log("This always runs.");
}

まとめ

これらの技術を活用すれば、より動的で効率的なWebアプリケーションを構築できます。
今回はここまでとなります。最後まで閲覧いただきありがとうございます。

いいなと思ったら応援しよう!