那段代码在做什么?
var buf = new ArrayBuffer(fileContent.length);
var view = new Uint8Array(buf);
for (var i=0; i!=fileContent.length; ++i)
view[i] = fileContent.charCodeAt(i) & 0xFF;
在FileSaver.js的功能上下文
saveAs(new Blob([buf],{type:""}), filename);
我无法获得此代码的整个目标(除了保存buf的最后一个字符串),如果我们要保存 buf view 的原因>,以及 view 如何对应 buf ,那是什么 fileContent.charCodeAt(i)& 0xFF 命令是什么意思?
答案 0 :(得分:2)
charCodeAt(i)
获取i
字符串的fileContent
字符,并将其字符代码作为数字返回。 & 0xFF
在该数字与十六进制数AND
之间执行二进制0xFF
运算;它将其屏蔽为低8位。然后,它将该8位数存储到view[i]
。
所以这一切基本上是将字符串从fileContent
复制到buf
,但剥离任何高位以获得8位字符。
这里的显式屏蔽并不是必需的。分配给Uint8Array
会自动将模值分配为256。