鍍金池/ 問(wèn)答/HTML/ 一段JS代碼作用

一段JS代碼作用

function getBytes(b) {

var c, d, e, f, h, i, j, k, l = 0,
m = [],g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
if (b) {
    b += "";
    do f = g.indexOf(b.charAt(l++)),
    h = g.indexOf(b.charAt(l++)),
    i = g.indexOf(b.charAt(l++)),
    j = g.indexOf(b.charAt(l++)),
    k = f << 18 | h << 12 | i << 6 | j,
    c = k >> 16 & 255,
    d = k >> 8 & 255,
    e = 255 & k,
    m.push(c),
    64 !== i && (m.push(d), 64 !== j && m.push(e));
    while (l < b.length)
}
return m

}
一段壓縮的js 不知道什么用?轉(zhuǎn)byte好像不是直接轉(zhuǎn)的。

回答
編輯回答
朕略傻
function getBytes(b) {
var c, d, e, f, h, i, j, k, l = 0,
m = [],g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
if (b) {
b += "";//轉(zhuǎn)字符串
do f = g.indexOf(b.charAt(l++)), //(b.chatAt(l++))返回b字符串的l+1位置字符,g.indexOf(b.chatAt(l++))返回指定字符在g字符串的位置

h = g.indexOf(b.charAt(l++)),//(b.chatAt(l++))返回b字符串的l+1位置字符,g.indexOf(b.chatAt(l++))返回指定字符在g字符串的位置
i = g.indexOf(b.charAt(l++)),
//(b.chatAt(l++))返回b字符串的l+1位置字符,g.indexOf(b.chatAt(l++))返回指定字符在g字符串的位置

j = g.indexOf(b.charAt(l++)),
//(b.chatAt(l++))返回b字符串的l+1位置字符,g.indexOf(b.chatAt(l++))返回指定字符在g字符串的位置

k = f << 18 | h << 12 | i << 6 | j, //f二進(jìn)制位左移18位或者h(yuǎn)二進(jìn)制左移12位或者i二進(jìn)制左移6位或者j賦值給k

c = k >> 16 & 255, //k二進(jìn)制右移16位和255(即11111111)二進(jìn)制與運(yùn)算賦值給c
d = k >> 8 & 255, //k二進(jìn)制右移8位和255(即11111111)二進(jìn)制與運(yùn)算賦值給d
e = 255 & k,  //255二進(jìn)制(即11111111)和K進(jìn)行與運(yùn)算賦值給e
m.push(c),    //m數(shù)組push進(jìn)c
64 !== i && (m.push(d), 64 !== j && m.push(e)); //64不等于i,m數(shù)組push進(jìn)d  64不等于j并且m.push(e)不為0)
while (l < b.length) //當(dāng)l小于b.length
}
return m 返回m
} 

你可能逗號(hào)運(yùn)算符和位移運(yùn)算符沒(méi)理解,逗號(hào)運(yùn)算符就看成一個(gè)從頭到尾的執(zhí)行順序就可以啦,位移運(yùn)算符就是按二進(jìn)制進(jìn)行移位

2018年6月30日 00:51