• Skip to primary navigation
  • Skip to main content

Nagashima Laboratory

  • Home
  • Lecture
  • Note
  • Index
  • About

JavaScriptの体験2

フォルダ:javascript_sample_02

【準備】

①「JavaScriptを書くための準備」の資料を参考にして、空のHTML、CSS、JavaScriptファイルを作ります。

②フォルダの名前を javascript_sample_02に変更します

事例5-1:繰り返し

事例1で触れた背景色を変更する事例について、3つのボタンをつくって、背景色を変更する場合のプログラムを考えます。

▼index.html <main>タグ内に追記する

<h2>5-1|繰り返し</h2>
<ul>
  <li><button type="button" class="btn-red">RED</button></li>
  <li><button type="button" class="btn-green">GREEN</button></li>
  <li><button type="button" class="btn-blue">BLUE</button></li>
</ul>

▼script.js(入力済みのコメントの後に追加)

//5-1|繰り返し
const btnRed = document.querySelector('.btn-red');
const btnGreen = document.querySelector('.btn-green');
const btnBlue = document.querySelector('.btn-blue');

btnRed.addEventListener('click', () => {
  document.body.style.backgroundColor = 'red';
});
btnGreen.addEventListener('click', () => {
  document.body.style.backgroundColor = 'green';
});
btnBlue.addEventListener('click', () => {
  document.body.style.backgroundColor = 'blue';
});

繰り返し記述することで、処理自体は可能です。しかし、このように同じような処理が繰り返し出てくるときには、プログラムは効率に書くことが可能です。

↓

事例5-2:引数(ひきすう)

一つの関数で複数の処理に対応するため「引数」を使用します。引数とは、関数を実行するときに渡される値のことです。

function 関数名( 引数 ) { 処理 }

▼index.html <main>タグ内に追記する

<h2>5-2|引数</h2>
<ul>
 <li><button type="button" class="btn-arg" data-color="red">RED</button></li>
 <li><button type="button" class="btn-arg" data-color="green">GREEN</button></li>
 <li><button type="button" class="btn-arg" data-color="blue">BLUE</button></li>
</ul>

▼script.js 続きに追加

// 5-2|引数
function changeBgColor(color) {
  document.body.style.backgroundColor = color;
}

const btnArgs = document.querySelectorAll('.btn-arg');
btnArgs.forEach(btn => {
  btn.addEventListener('click', () => {
    const color = btn.getAttribute('data-color');
    changeBgColor(color); // 引数として渡す
  });
});

最初のボタンをクリックすると、data-color属性に書かれた'red'という文字列を color に受けとり、その結果、背景色を red にすることができます。

  • forEach 配列の数分、繰り返し処理を行う(作例の場合、.btn-argの数だけ繰り返しを実行する)

事例6:汎用性のある関数

汎用性とは、ひとつの用途だけではなく、さまざまなことに広く利用、応用できることです。

▼index.html <main>タグ内に追記する

<h2>6|汎用性のある関数</h2>
<button type="button" class="btn-generic">クリック</button>

▼script.js 続きに追加

// 6|汎用性のある関数
// ランダムな16進6桁のカラーコードを生成
function randomColor() {
  const col = Math.floor(Math.random() * 0xFFFFFF).toString(16).padStart(6, '0');
  return '#' + col;
}

// 関数の呼び出し
const btnGeneric = document.querySelector('.btn-generic');
btnGeneric.addEventListener('click', () => {
  document.body.style.backgroundColor = randomColor();
});
  • Math.floor() 整数を返します
  • Math.randam() 0 以上 1 未満の範囲で乱数(ランダムな数字)を作ります
  • Math.random() * 0xFFFFFF 0 以上 16777215(16進数でFFFFFF)未満のランダムな数値を生成(数値の前に0xがつくと以降を16進数として扱う)
  • toString(16) 16進数を返します
  • padStart(6, ‘0’) 6桁に満たない場合に先頭を0で追加
  • return ‘#’ + col colの値の前に#をつける(returnは関数を終了し値を返す)

エラーの確認方法〜JavaScript console(コンソール)

JavaScriptは、ブラウザ上で動作しますが、文法や構造に問題があった場合に、ブラウザ上では機能が無視されるだけで、表向き、エラーメッセージが表示されません。

そこで、スクリプトを開発する場合、ブラウザのコンソール機能を使用します

Chromeの場合

メニュー>表示>開発/管理>JavaScriptコンソール

▼エラーが表示されたところ

  • 作成例:https://ngsm-syr.github.io/javascript_sample_02a
  • コード:https://github.com/ngsm-syr/javascript_sample_02a

参考書籍・リンク

  • 「すらすらわかるJavaScript 新版」桜庭洋之,望月幸太郎, 翔泳社,2022
  • https://developer.mozilla.org/ja/docs/Learn/Getting_started_with_the_web/JavaScript_basics
  • https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
  • https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
  • https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/random
  • https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/toString
  • https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
  • https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/return

2023-06-07 (Last Modified: 2025-05-30) Category: 資料 Tags:javascript

Copyright © 2023–2025 · Nagashima Sayuri Laboratory