JavaScriptでGUID/UUIDを生成する3つの方法【コード例付き】
GUID(Globally Unique Identifier)やUUID(Universally Unique Identifier)は、重複しない一意な識別子を生成するための128ビットの値です。データベースのレコードIDやセッション管理など、さまざまな場面で活用されます。ここでは、JavaScriptでUUID/GUIDを生成する主な方法を3つ紹介します。
1. Math.random()関数を使う方法
もっとも手軽なのは、Math.random()関数を利用する方法です。以下のコードでは、ランダムな16進数の文字列を「xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx」というテンプレートに埋め込むことで、UUID形式の文字列を生成しています。
function createUUID() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
注意:この方法は本番環境(プロダクション)での使用には適していません。Math.random()は暗号学的に安全な乱数ではないため、生成されたUUIDが必ずしも一意になるとは限りません。あくまで学習用や簡易的な用途にとどめましょう。
2. npmのuuidモジュールを使う方法
RFC4122に準拠したUUIDを確実に生成したい場合は、npmの「uuid」モジュールを利用するのが定番です。まず、以下のコマンドでインストールします。
$ npm install uuid
次に、以下の内容でscript.jsファイルを作成します。
const { v4: uuidv4 } = require('uuid');
console.log(uuidv4());
console.log(uuidv4());
console.log(uuidv4());
作成したファイルは、次のコマンドで実行できます。
node script.js
実行すると、以下のようなUUIDが出力されます。
a85a8e6b-348b-4011-a1ec-1e78e9620782 03ea49f8-1d96-4cd0-b279-0684e3eec3a9 7289708e-b17a-477c-8a77-9ab575c4b4d8
3. crypto.randomUUID()を使う方法
Node.js 14.17.0以降やモダンブラウザでは、標準APIであるcrypto.randomUUID()を使うのが最も簡単かつ安全です。追加のライブラリ不要で、暗号学的に安全なUUID v4をその場で生成できます。
const uuid = crypto.randomUUID(); console.log(uuid); // 例: '36b8f84d-df4e-4d49-b662-bcde71a8764f'
まとめ
簡易的な用途にはMath.random()ベースの自作関数でも十分ですが、本番環境では一意性とセキュリティが保証されたuuidモジュールまたはcrypto.randomUUID()の使用を推奨します。特にブラウザとNode.jsの両方で動くコードが必要な場合は、標準APIのcrypto.randomUUID()が第一の選択肢となるでしょう。
-
JavaScriptでURLオブジェクトを作成する方法をわかりやすく解説
JavaScriptでは、標準組み込みのURLコンストラクタを使うことで、URL文字列からURLオブジェクトを簡単に生成できます。URLオブジェクトを作成すると、プロトコル(protocol)やホスト名(host)、パス(pathname)など、URLを構成する各要素に個別にアクセスできるようになるため、URLの解析や操作がとても便利になります。 URLオブジェクトの作成例 以下は、JavaScriptでURLオブジェクトを作成し、ボタンをクリックするとその各プロパティを画面に表示するサンプルコードです。 <!DOCTYPE html> <html lang="
-
JavaScriptで多次元オブジェクトを作成する方法【サンプルコード付き】
はじめに JavaScriptでは、オブジェクトのプロパティの値として別のオブジェクトを持たせることで、多次元(ネストされた)オブジェクトを作成できます。この構造を活用すると、氏名や学校情報、住所のように階層関係のあるデータを、直感的かつ整理された形で表現することが可能です。 サンプルコード 以下は、多次元JavaScriptオブジェクトを作成し、コンソールに表示するためのコード例です。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /