【デイトラ学習記録】DAY11 関数 – フロントエンド開発編

今回はJavaScriptの関数について学習しました。

基本的な内容は学習済みなので、複雑な処理のみ掻い摘んでキャッチアップしました。

配列と関数を組み合わせて使用する例

JavaScript
/**
 * 配列の名前に指定した文字が含まれるか検索フィルタする関数
 *
 * @param {string} names 検索対象の名前の配列
 * @param {string} substring 検索ワード
 */

function filterNamesBySubstrings(names, substring) {
  const filteredNames = [];

  for (let i = 0; i < names.length; i++) {
    if (names[i].includes(substring)) {
      filteredNames.push(names[i]);
    }
  }

  return filteredNames;
}

const names = ["John", "Paul", "George", "Ringo"];
const substring = "0";
const result = filterNamesBySubstrings(names, substring);
console.log(result); // ["John", "George", "Ringo"]
  1. filterNamesBySubstrings() の引数に以下を渡す
    • 検索対象の名前の配列
    • 検索ワード
  2. 関数の中で、空の配列を用意する。const filteredNames = [];
  3. その配列の中に、検索対象の名前の配列から、検索ワードに一致する名前のみ抽出する。
  4. return filteredNames; で返す

コールバック関数

普段Web制作では使う機会の少ないコールバック関数を学びました。

JavaScript
/**
 * 名前を受け取り、アラートで挨拶する関数
 *
 * @param {string} name
 */
function greeting(name) {
  alert(`Hello, ${name}!`);
}

/**
 * ユーザーの名前を入力してもらい、コールバック関数で処理する関数
 *
 * @param {function} callback
 */
function processUserInput(callback) {
  const name = prompt("Please enter your name.");
  callback(name);
}

processUserInput(greeting);

処理の流れ

  1. greeting 関数の定義
    • 引数 name を受け取り、alert を使って Hello, [name]! という挨拶を表示します。
  2. processUserInput 関数の定義
    • ユーザーに prompt で名前を入力してもらい、その名前をコールバック関数(callback)に渡して処理します。
  3. processUserInput の実行
    • greeting 関数をコールバックとして渡します。
      これにより、ユーザーが入力した名前が greeting 関数に渡されて、アラートが表示されます。

使っている関数のメモ

  • prompt()
    • ユーザーにテキストを入力するように促すダイアログをオプションのメッセージと共に表示し、ユーザーがテキストを送信するかダイアログをキャンセルするまで待機するようにブラウザーに指示します。
  • callback()
    • 引数として他の関数に渡され、外側の関数の中で呼び出されて、何らかのルーチンやアクションを完了させる関数のことです。

その他のコールバック関数の使用例

JavaScript
/**
 * 数字を2倍にして結果を表示する関数
 *
 * @param {number} number 入力された数字
 */
function doubleNumber(number) {
  alert(`結果: ${number * 2}`);
}

/**
 * ユーザーに数字を入力してもらい、コールバック関数で処理する関数
 *
 * @param {function} callback 処理を行うコールバック関数
 */
function processUserNumber(callback) {
  const input = prompt("数字を入力してください。");
  const number = parseFloat(input); // 文字列を数値に変換
  if (!isNaN(number)) {
    callback(number);
  } else {
    alert("有効な数字を入力してください。");
  }
}

processUserNumber(doubleNumber);

感想

コールバック関数は、Web制作では使ったことがないので、しっかりとキャッチアップしました。
最初は少しクセがあるように感じ、なんだか処理の順番が逆な感じもしましたが、理解できました💡

Yuta | Code.Yu

WordPressをメインに活動する、フリーランスのWeb制作コーダーです。
React案件を経験したことをきっかけに、さらにフロントエンド開発のスキルを高めるため、JavaScriptやReactの学習を進めています。このブログでは、学習の過程や記録を発信しています。

Web制作に関する情報はこちら
Code.Yu | ホームページ制作・コーディング代行 ↗︎