第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

生成uuid的方法為啥先&0x3后|0x8???

生成uuid的方法為啥先&0x3后|0x8???

富國滬深 2019-03-14 14:15:09
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);    });}代碼如上,為啥先&0x3后|0x8???
查看完整描述

2 回答

?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗 獲得超1個贊

//上面的代碼等效為下面的

function guid() {

    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {

        var r = Math.random()*16|0;//這里其實還有一個作用就是把r變成了整數(shù)

        var v = (c == 'x') ? r : (r&0x3|0x8);// 其實就是說x直接替換,y另外的用經(jīng)過特殊處理的,這里的特殊處理就是 r&0x3|0x8 ,因為位運(yùn)算有順序,這樣的值就限定在一個范圍了,其范圍就是二進(jìn)制 1000-1011這樣4個數(shù)字了,然后輸出為8,9,A,B這樣4個字符了。

        return v.toString(16);

    });

}

這樣處理可能是用于校驗、檢測等等目的。


查看完整回答
反對 回復(fù) 2019-03-22
?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗 獲得超8個贊

個人感覺,它其實是想保證返回的值是[8,A]這個區(qū)間的。


r

------

& 0011

------

| 1010


查看完整回答
反對 回復(fù) 2019-03-22
  • 2 回答
  • 0 關(guān)注
  • 1761 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號