一、UUID是什麼?
UUID(Universally Unique Identifier,通用唯一標識符)是一種128位長的標識符,用於在計算機系統中識別信息
UUID是通過MAC地址、時間戳、命名空間、隨機數和其它方法,保證ID的唯一性
在Java中,我們可以使用java.util.UUID類來生成UUID
import java.util.UUID; System.out.println(UUID.randomUUID()); // output: 7d65c57e-2f0d-449d-b645-e8da4b556250
二、randomuuidisnotafunction的問題
在JavaScript中,我們通常使用Math.random()方法生成隨機數。但是,這種方式生成的隨機數是不唯一的
console.log(Math.random()); // output: 0.6528870726352309 console.log(Math.random()); // output: 0.7409684183808188
所以,有些人會使用類似於這樣的方式生成UUID
function uuidv4() { 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); }); } console.log(uuidv4()); // output: "4871f5ad-9fad-495b-9d88-ab8e65c7a54b" console.log(uuidv4()); // output: "da4d6784-e000-4b22-a73a-8eff0eb227c6"
然而,上面這種方式生成的”UUID”,實際上並不是真正的UUID,而是偽造的。因為它並沒有遵守UUID標準。事實上,在JavaScript中,並沒有內置的UUID生成器。所以,我們必須藉助一些第三方庫來生成UUID
三、通過第三方庫生成UUID
在JavaScript中,有一些第三方庫可以用來生成UUID,比如:
- node-uuid
- uuid
下面是node-uuid的使用方法:
var uuid = require('node-uuid'); console.log(uuid.v4()); // output: "bb7e85b7-fc97-4135-9ce5-414f1c0891fb" console.log(uuid.v4()); // output: "486dd8fb-9c86-4ee2-bea1-fd5600708ef6"
下面是uuid的使用方法:
import { v4 as uuidv4 } from 'uuid'; console.log(uuidv4()); // output: "c1d805ed-434e-4729-bdd1-f5b0ae4d7350" console.log(uuidv4()); // output: "92b16105-6dee-4a25-836b-cc81fca93e51"
四、總結
UUID是一種用於在計算機系統中識別信息的128位長的標識符。在JavaScript中,通過第三方庫可以很方便地生成UUID。而自己實現UUID生成器並不可取,因為這樣生成的”UUID”並不遵守UUID標準,也不具有唯一性。
原創文章,作者:POXL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/138401.html