【发布时间】:2011-10-06 05:09:18
【问题描述】:
我看到了这个代码示例,没有任何解释:
var xhr = new XMLHttpRequest();
xhr.open('GET', '/path/to/image.png', true);
// Trick to pass bytes through unprocessed.
xhr.overrideMimeType('text/plain; charset=x-user-defined');
xhr.onreadystatechange = function(e) {
if (this.readyState == 4 && this.status == 200) {
var binStr = this.responseText;
for (var i = 0, len = binStr.length; i < len; ++i) {
var c = binStr.charCodeAt(i);
//String.fromCharCode(c & 0xff)
var byte = c & 0xff; // byte at offset i
}
}
};
xhr.send();
我想知道var byte = c & 0xff; // byte at offset i 这条线在做什么?为什么AND 和0xFF?如果重要的话,这段代码是用 JavaScript 编写的。
【问题讨论】:
-
字节在
[0, 255]范围内,& 0xff等于% 255,所以它返回一个有效字节。 -
我建议阅读按位运算符。即使您不会每天都使用它们,但了解它们也是一件好事,而且了解 IMO 也很有趣。
标签: javascript binary bitwise-operators