专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

js怎么获取id,js获取id方式介绍

来源:小嗨整编  作者:小嗨  发布时间:2023-02-22 09:51
摘要:js怎么获取id,js获取id方式介绍。之前代码中前端生成唯一的id方式,一般采用uuid的方式,最近唯一id有了更好的方式,那就是NanoID,今天这篇文章记录一下NanoID正在取代UUID?及js生成uuid及NanoID的方法。为什...

js怎么获取id,js获取id方式介绍。之前代码中前端生成唯一的id方式,一般采用uuid的方式,最近唯一id有了更好的方式,那就是NanoID,今天这篇文章记录一下NanoID 正在取代 UUID?及js 生成uuid及NanoID的方法。

为什么 NanoID 正在取代 UUID

1、.更安全 在大多数随机生成器中,它们使用不安全的 Math.random()。但是,NanoID 使用 crypto module 和 Web Crypto API,意味着 NanoID 更安全。 此外,NanoID 在 ID 生成器的实现过程中使用了自己的算法,称为 统一算法,而不是使用“随机 % 字母表” random % alphabet。

2、 它既快速又紧凑 NanoID 比 UUID 快 60%。与 UUID 字母表中的 36 个字符不同,NanoID 只有 21 个字符。

此外,NanoID 支持 14 种不同的编程语言,它们分别是:

C#、C++、Clojure 和 ClojureScript、Crystal、Dart & Flutter、Deno、Go、Elixir、Haskell、Janet、Java、Nim、Perl、PHP、带字典的 Python、Ruby、Rust、Swift

3、兼容性

它还支持 PouchDB、CouchDB WebWorkers、Rollup 以及 React 和 Reach-Native 等库。 我们可以使用 npx nanoid 在终端中获得唯一 ID。

js如何生成

我们看下他们都是如何用js生成的

js怎么获取id,js获取id方式介绍

首先说下,之前我们是如何生成uuid的

方法一:

function guid() {    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);
    });
}
guid() // "a1ca0f7b-51bd-4bf3-a5d5-6a74f6adc1c7"

方法二:

var _S4 = function() {  return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)
}// 获取广告请求唯一ID 方式是当前时间戳+13位随机吗export function GetsingleId() {  var _res = (_S4() + _S4() + '-' + _S4() + '-' + _S4() + '-' + _S4() + '-' + _S4() + _S4() + _S4())  return '_' + config.version + '_' + _res
}

方法三:

function uuid() {    var s = [];    var hexDigits = "0123456789abcdef";    for (var i = 0; i < 36; i++) {
        s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
    }
    s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
    s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
    s[8] = s[13] = s[18] = s[23] = "-";    var uuid = s.join("");    return uuid;
}
uuid() // "ffb7cefd-02cb-4853-8238-c0292cf988d5"

NanoID的方式

import { nanoid } from 'nanoid'let  idA = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT"//也可以指定生成字符串的长度let  idB = nanoid(5)

主要可以通过npm包的形式安装,核心代码如下:

let urlAlphabet =  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'let nanoid = (size = 21) => {  let id = ''
  // A compact alternative for `for (var i = 0; i < step; i++)`.
  let i = size  while (i--) {    // `| 0` is more compact and faster than `Math.floor()`.
    id += urlAlphabet[(Math.random() * 64) | 0]
  }  return id
}

本文地址:IT问答频道 https://www.eeeoo.cn/itwenda/903220.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!


IT问答
小编:小嗨整编
相关文章相关阅读
  • 王者荣耀id在哪里查看(王者荣耀id隐形符号大全)?

    王者荣耀id在哪里查看(王者荣耀id隐形符号大全)?

    王者荣耀id在哪里查看(王者荣耀id隐形符号大全)?王者荣耀玩家想查看自己的ID可以在游戏首页界面的左上角头像框旁边查看。想查看好友的ID可以在游戏主界面左侧的排行或者到该玩家个人主页查看。王者荣耀id查询方法:1、找到王者荣耀游戏,点击打...

  • 王者荣耀好听的id大全(王者荣耀好听的id网名)

    王者荣耀好听的id大全(王者荣耀好听的id网名)

    王者荣耀好听的id大全(王者荣耀好听的id网名)王者荣耀每隔一段时间就有改名卡的活动,不管是氪金玩家还是零氪金的玩家,都会存几张改名卡,主要还是找不到名字的灵感,最后都是跟风,哪个名字流行就起哪个,王者荣耀有哪些好听的名字呢?下面给大家盘点...

  • 我的世界方块id大全(我的世界方块大全图鉴)

    我的世界方块id大全(我的世界方块大全图鉴)

    我的世界方块id大全(我的世界方块大全图鉴)在我的世界中,建筑的构造材料基本上就是不同的方块物品了,而玩家们想要获取除非了合成且收集各类的才来哦,那么有没有更方便的获取方法呢?那就是通过物品ID了。下面分享我的世界方块id大全与图片以供玩家...

  • 魔兽世界法术id宏命令(魔兽世界法术id数据库)

    魔兽世界法术id宏命令(魔兽世界法术id数据库)

    魔兽世界法术id宏命令(魔兽世界法术id数据库)1、寒冰箭#showtooltip/cast[modifier:alt]寒冰箭(等级1);#showtooltip/cleartarget[dead][help]/协助[noexists,no...

  • rfid读写器软件下载(rfid读写器软件有哪些)?

    rfid读写器软件下载(rfid读写器软件有哪些)?

    rfid读写器软件下载(rfid读写器软件有哪些)?RFID读写器又称为“RFID阅读器”,即无线射频识别,通过射频识别信号自动识别目标对象并获取相关数据,无须人工干预,可识别高速运动物体并可同时识别多个RFID标签,操作快捷方便。rfid...

  • 魔兽世界物品怎么拆分(魔兽世界物品id大全)?

    魔兽世界物品怎么拆分(魔兽世界物品id大全)?

    魔兽世界物品怎么拆分(魔兽世界物品id大全)?魔兽世界中,物品装备是可以拆分的,并且里面所有的物品都有一个id,下面就来介绍一下魔兽世界物品的拆分方法及物品id大全。魔兽世界物品怎么拆分1、玩家首先需要学习附魔专业的技能。2、随后玩家在附魔...

  • 总结CreateJS的详细介绍

    总结CreateJS的详细介绍

    CreateJS库是一款HTML5游戏开发的引擎,是一套可以构建丰富交互体验的HTML5游戏的开源工具包,旨在降低HTML5项目的开发难度和成本,让开发者以熟悉的方式打造更具现代感的网络交互体验。掌握了CreateJS可以更方便的完成HTM...

  • jsp文件怎么创建

    jsp文件怎么创建

    创建jsp文件的步骤:1、安装和配置java开发环境;2、安装和配置web服务器;3、创建jsp文件;4、编写jsp代码;5、部署和运行应用程序;6、调试和测试。详细介绍:1、安装和配置java开发环境,首先需要在计算机上安装jdk,可以从...

  • 周排行
  • 月排行
  • 年排行

精彩推荐