教程
node.js中的dns.getServers方法使用说明 node.js中的events.EventEmitter.listenerCount方法使用说明 node.js中的path.resolve方法使用说明 node.js中的path.sep方法使用说明 node.js中的path.normalize方法使用说明 node.js中的path.join方法使用说明 node.js中的path.isAbsolute方法使用说明 node.js中的path.extname方法使用说明 node.js中的path.dirname方法使用说明 node.js中的path.delimiter方法使用说明 node.js中的path.basename方法使用说明 node.js中的console.timeEnd方法使用说明 node.js中的console.time方法使用说明 node.js中的console.trace方法使用说明 node.js中的console.info方法使用说明 node.js中的console.warn方法使用说明 node.js中的console.log方法使用说明 node.js中的console.error方法使用说明 node.js中的console.dir方法使用说明 node.js中的console.assert方法使用说明 node.js中的url.format方法使用说明 node.js中的url.parse方法使用说明 node.js中的url.resolve方法使用说明 node.js中的querystring.parse方法使用说明 node.js中的querystring.stringify方法使用说明 node.js中的querystring.escape方法使用说明 node.js中的querystring.unescape方法使用说明 node.js中的events.emitter.removeAllListeners方法使用说明 node.js中的events.emitter.listeners方法使用说明 node.js中的events.emitter.removeListener方法使用说明 node.js中的emitter.emit方法使用说明 node.js中的events.emitter.once方法使用说明 node.js中的emitter.on方法使用说明 node.js中的http.request.end方法使用说明 node.js中的buffer.write方法使用说明 node.js中的buffer.slice方法使用说明 node.js中的buffer.Buffer.byteLength方法使用说明 node.js中的buffer.Buffer.isBuffer方法使用说明 node.js中的buffer.Buffer.isEncoding方法使用说明 node.js中的buffer.toString方法使用说明 node.js中的buffer.toJSON方法使用说明 node.js中的buffer.length方法使用说明 node.js中的buffer.fill方法使用说明 node.js中的buffer.copy方法使用说明 node.js中的http.request方法使用说明 node.js中的http.response.removeHeader方法使用说明 node.js中的http.response.setHeader方法使用说明 node.js中的http.response.end方法使用说明 node.js中的http.response.write方法使用说明 node.js中的http.response.getHeader方法使用说明 node.js中的http.response.writeHead方法使用说明 node.js中的http.response.addTrailers方法使用说明 node.js中的fs.writeFile方法使用说明 node.js中的fs.writeFileSync方法使用说明 node.js中的fs.writeFile方法使用说明 node.js中的http.createServer方法使用说明 node.js中的http.get方法使用说明 node.js中的http.createClient方法使用说明 node.js中的fs.write方法使用说明 node.js中的fs.writeSync方法使用说明 node.js中的fs.fsyncSync方法使用说明 node.js中的fs.ftruncate方法使用说明 node.js中的fs.fsync方法使用说明 node.js中的fs.unlink方法使用说明 node.js中的fs.unlinkSync方法使用说明 node.js中的fs.truncate方法使用说明 node.js中的fs.truncateSync方法使用说明 node.js中的fs.utimes方法使用说明 node.js中的fs.utimesSync方法使用说明 node.js中的fs.symlink方法使用说明 node.js中的fs.symlinkSync方法使用说明 node.js中的fs.link方法使用说明 node.js中的fs.linkSync方法使用说明 node.js中的fs.readFile方法使用说明 node.js中的fs.readFileSync方法使用说明 node.js中的fs.fstat方法使用说明 node.js中的fs.fstatSync方法使用说明 node.js中的require使用详解 node.js中的fs.lstat方法使用说明 node.js中的fs.lstatSync方法使用说明 node.js中的fs.rename方法使用说明 node.js中的fs.renameSync方法使用说明 node.js中的fs.realpath方法使用说明 node.js中的fs.realpathSync方法使用说明 node.js中的fs.stat方法使用说明 node.js中的fs.statSync方法使用说明 node.js中的fs.lchmod方法使用说明 node.js中的fs.lchmodSync方法使用说明 node.js中的fs.fchmod方法使用说明 node.js中的fs.fchmodSync方法使用说明 node.js中的fs.lchown方法使用说明 node.js中的fs.lchownSync方法使用说明 node.js中的fs.chown方法使用说明 node.js中的fs.chownSync方法使用说明 node.js中的fs.fchown方法使用说明 node.js中的fs.fchownSync方法使用说明 node.js中的fs.rmdir方法使用说明 node.js中的fs.rmdirSync方法使用说明 node.js中的fs.mkdir方法使用说明 node.js中的fs.mkdirSync方法使用说明 node.js中的fs.read方法使用说明 node.js中的fs.readSync方法使用说明 node.js中的fs.readlink方法使用说明 node.js中的fs.readlinkSync方法使用说明 node.js中的fs.readdir方法使用说明 node.js中的fs.readdirSync方法使用说明 node.js中的fs.close方法使用说明 node.js中的fs.closeSync方法使用说明 node.js中的fs.open方法使用说明 node.js中的fs.openSync方法使用说明 node.js中的fs.exists方法使用说明 node.js中的fs.existsSync方法使用说明 node.js中的fs.futimes方法使用说明 node.js中的fs.futimesSync方法使用说明 node.js中的fs.createWriteStream方法使用说明 node.js中的fs.createReadStream方法使用说明 node.js中的fs.appendFileSync方法使用说明 node.js中的fs.appendFile方法使用说明 node.js中的fs.chmod方法使用说明 node.js中的fs.chmodSync方法使用说明

发布于 2016-08-27 04:07:06 | 184 次阅读 | 评论: 0 | 来源: 网友投递

这篇文章主要介绍了node.js中的buffer.slice方法使用说明,本文介绍了buffer.slice的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下

方法说明:

返回一个新的buffer对象,这个新buffer和老buffer公用一个内存。

但是被start和end索引偏移缩减了。(比如,一个buffer里有1到10个字节,我们只想要4-8个字节,就可以用这个函数buf.slice(4,8),因为他们共用一个内存,所以不会消耗内存,)

因为共用内存,所以修改新的buffer后,老buffer的内容同样也会被修改。

语法:



buffer.slice([start], [end])

接收参数:

start      开始位置,默认

end      结束位置,默认为buffer长度

例子:

用ASCII码字母表创建一个buffer,用一下slice函数,然后修改原buffer中的一个字节。



var buf1 = new Buffer(26);

for (var i = 0 ; i < 26 ; i++) {

  buf1[i] = i + 97; // 97 is ASCII a

}

var buf2 = buf1.slice(0, 3);

console.log(buf2.toString('ascii', 0, buf2.length));

buf1[0] = 33;

console.log(buf2.toString('ascii', 0, buf2.length));

// abc

// !bc

源码:



// TODO(trevnorris): currently works like Array.prototype.slice(), which

// doesn't follow the new standard for throwing on out of range indexes.

Buffer.prototype.slice = function(start, end) {

  var len = this.length;

  start = ~~start;

  end = util.isUndefined(end) ? len : ~~end;

  if (start < 0) {

    start += len;

    if (start < 0)

      start = 0;

  } else if (start > len) {

    start = len;

  }

  if (end < 0) {

    end += len;

    if (end < 0)

      end = 0;

  } else if (end > len) {

    end = len;

  }

  if (end < start)

    end = start;

  var buf = new NativeBuffer();

  sliceOnto(this, buf, start, end);

  buf.length = end - start;

  if (buf.length > 0)

    buf.parent = util.isUndefined(this.parent) ? this : this.parent;

  return buf;

};

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务