None.js 第五步 Buffer(缓冲区)
// 存数据,取数据;
buf = Buffer.alloc(26);
for (var i = 0; i < 26; i++) {
buf[i] = i + 97;
}
- console.log(buf.toString('ascii'));
- console.log(buf.toString('ascii',0,5));
- console.log(buf.toString('utf8',0,5));
- console.log(buf.toString(undefined, 0, 5));
输出
abcdefghijklmnopqrstuvwxyz
abcde
abcde
abcde
const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const json = JSON.stringify(buf);
// 输出: {"type":"Buffer","data":[1,2,3,4,5]}
console.log(json);
const copy = JSON.parse(json, (key, value) => {
// 这个地方最初的时候没有理解,其实原因很简单,就是运算符的优先级导致的
// 这个时候如果单独打印
value && value.type === 'Buffer'
// 返回的其实是一个 false 并不是我们理解的一个true
// 这个时候输出的是正确的
return value && value.type === 'Buffer' ?
Buffer.from(value.data) :
value;
// 这个时候输出的竟然是 lin
return value && value.type === 'Buffer' ?
"lin" : // lin
value;
// 这个时候输出的就是 m
return value && value.type === 'Buffer' ?
"lin" :
"m"; // m
// 这个时候输出的也是 m
return value && value.type === 'Buffer' ?
Buffer.from(value.data) :
"m"; // m
});
// 输出: <Buffer 01 02 03 04 05>
console.log(copy);
通过分享,结交好友~ 如本文对您有益,请给予关注。转载请注明出处!-- 小数