你可能有需要在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()对于高质量的随机数生成并不推荐