JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでランダムなHEXカラーコードを生成する方法

JavaScriptで、関数を呼び出すたびにランダムに生成された16進数(HEX)形式のカラーコードを返す関数 randomColor を作成してみましょう。本記事では、Math.random() を活用したシンプルで実用的な実装例と、その仕組みについて詳しく解説します。

コード例

以下がその実装コードです。

const randomColor = () => {
    let color = '#';
    for (let i = 0; i < 6; i++){
        const random = Math.random();
        const bit = (random * 16) | 0;
        color += (bit).toString(16);
    };
    return color;
};
console.log(randomColor());
console.log(randomColor());
console.log(randomColor());
console.log(randomColor());
console.log(randomColor());
console.log(randomColor());
console.log(randomColor());

コードの仕組み

この関数がどのようにランダムな色を生成しているのか、処理の流れを順番に見ていきましょう。

  • 先頭の「#」: HEXカラーコードは必ずシャープ記号(#)から始まるため、初期値として設定しています。
  • Math.random(): 0以上1未満のランダムな小数を返します。
  • (random * 16) | 0: ランダム値に16を掛けることで0〜15の範囲に収め、ビット演算子 | 0 によって小数点以下を切り捨てて整数にしています。
  • toString(16): 整数を16進数表記の文字列(0〜9、a〜f)に変換します。
  • 6回のループ: R・G・Bそれぞれ2桁ずつ、合計6文字の16進数を連結し、「#RRGGBB」形式の完全なカラーコードを完成させています。

出力結果

コンソールには以下のようなランダムなカラーコードが出力されます。実行するたびに結果は変わります。

#762b46
#cfa0bf
#a20ee1
#c2f7e0
#5d5822
#380f30
#805408

応用:生成した色を画面に反映する

生成したカラーコードは、そのまま要素のスタイルに適用できます。たとえばページの背景色をランダムに変更したい場合は、次のように書きます。

document.body.style.backgroundColor = randomColor();

ボタンのクリックイベントと組み合わせれば、「クリックするたびに背景色が変わる」といったインタラクティブな演出も簡単に実装できます。ぜひ実際のプロジェクトで活用してみてください。

  1. JavaScriptの列挙型(Enum)とは?オブジェクトを使った実装方法をわかりやすく解説

    JavaScriptには列挙型が組み込まれていない JavaScriptは、TypeScriptやJavaなどの言語と異なり、列挙型(Enum)を標準機能としてサポートしていません。そのため、JavaScriptで列挙型のようなものを実現するには、オブジェクトを使って自前で実装する必要があります。 本記事では、オブジェクトを利用してJavaScriptで列挙型を再現する方法を、実際のコード例とともにわかりやすく解説します。 オブジェクトで列挙型を実現する基本の考え方 JavaScriptで列挙型を作る最もシンプルな方法は、キー(名前)と値をペアにしたオブジェクトを定義することです。以下の例で

  2. JavaScriptでhref属性の値を取得する方法|jQueryのattr()メソッド活用ガイド

    Web開発では、アンカータグ(<a>)に設定されたリンク先URL、つまりhref属性の値を取得したい場面がよくあります。この記事では、jQueryのattr()メソッドを使って、簡単にhrefの値を取得する方法を解説します。対象となるHTMLの例たとえば、以下のようなアンカータグがあったとします。<a class=demo title=get the url href=./mainPage.jsp/1245>href value at console</a>ここで必要なのは、テキスト部分ではなく、URLそのもの、すなわちhref属性の値「./mainPage