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);
posted @ 2018-02-10 15:20  小数  阅读(341)  评论(0编辑  收藏  举报