方法说明:
返回一个新的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; };
本文向大家介绍node.js中的events.emitter.removeListener方法使用说明,包括了node.js中的events.emitter.removeListener方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 移除指定事件的某个监听器。 语法: 接收参数: event (string) 事件类型 listene
本文向大家介绍node.js中的emitter.emit方法使用说明,包括了node.js中的emitter.emit方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 发射event事件,传递若干可选参数到事件监听器的参数表。 语法: 接收参数: event 事件类型 arg1 ~ argN 传递的参数(多个) 例子:
本文向大家介绍node.js中的events.emitter.once方法使用说明,包括了node.js中的events.emitter.once方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 为指定事件注册一个 单次 监听器,所以监听器至多只会触发一次,触发后立即解除该监听器。 语法: 接收参数: event (string) 事件
本文向大家介绍node.js中的emitter.on方法使用说明,包括了node.js中的emitter.on方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 为指定事件注册一个监听器。 语法: 接收参数: event (string) 事件类型 listener (function) 触发事件时的回调函
本文向大家介绍node.js中的http.request.end方法使用说明,包括了node.js中的http.request.end方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 完成请求发送。 如果任何一部分请求体没有被发送,它将被刷新到流。 如果指定了 data值,将在执行完 request.end() 后,再执行一条 request.write(data , encodi
本文向大家介绍node.js中的buffer.write方法使用说明,包括了node.js中的buffer.write方法使用说明的使用技巧和注意事项,需要的朋友参考一下 方法说明: 将string使用指定的encoding写入到buffer的offset处。 返回写入了多少个八进制字节。 如果Buffer没有足够的空间来适应整个string,那么将只有string的部分被写入。 语法: 接收参数