Better

Ethan的博客,欢迎访问交流

在JavaScript中创建GUID/UUID

你可能有需要在JS中创建GUID/UUID的场景,但是JS中并没有提供内置函数,我们可以使用Math.random()或Date().getTime()来生成GUID。

方式一

function createGUID() {
  function random() {
    return Math.floor((1 + Math.random()) * 0x10000)
      .toString(16)
      .substring(1);
  }
  return random() + random() + '-' + random() + '-' + random() + '-' +
    random() + '-' + random() + random() + random();
}

方式二

'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);
});

方式三

function generateUUID(){
    var dt = new Date().getTime();
    if(window.performance && typeof window.performance.now === "function"){
        dt += performance.now(); //use high-precision timer if available
    }
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        var r = (dt + Math.random()*16)%16 | 0;
        dt = Math.floor(d/16);
        return (c=='x' ? r : (r&0x3|0x8)).toString(16);
    });
    return uuid;
}

总结

所有的方法都高度依赖于Math.random()函数,但是Math.random()对于高质量的随机数生成并不推荐

来源



留言