UUID Universally Unique Identifier
每个人都可以创建不与其它人冲突的UUID
让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定

UUID 是由一组32位数的16进制数字所构成,是故 UUID 理论上的总数为1632=2128,
约等于3.4 x 10123。
若每纳秒产生1百万个 UUID,要花100亿年才会将所有 UUID 用完。
https://www.jianshu.com/p/da6dae36c290

npm uuid

  1. npm install uuid
  2. import { v4 as uuidv4 } from 'uuid';
  3. uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'

js生成UUID

UUID是一个128比特的数值,这个数值可以通过一定的算法计算出来

  1. export function uuid() {
  2. // 正则匹配 x y
  3. return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
  4. /* tslint:disable */
  5. const r = (Math.random() * 16) | 0;
  6. /* tslint:disable */
  7. const v = c === 'x' ? r : (r & 0x3) | 0x8;
  8. return v.toString(16);
  9. });
  10. }
  • “|”运算符(位或)对两个二进制操作数逐位进行比较,并根据如表格所示的换算表返回结
  • “&”运算符(位与)对两个二进制操作数逐位进行比较
  • 0x3
  • 0x8
  • | 文档 http://c.biancheng.net/view/5469.html

image.png

uuid4

  1. 61ea0f88-2742-4bd4-8fdd-56aafe0c1c50

uui5

  1. 0c84f6d9-89e5-5457-bb4d-be18cdd3c1b7

uui3

  1. 8ba581e3-4147-365a-85dd-9c91602766b8

uuid1

  1. 6d6ef38f-787b-4505-826a-0e1717103bf4