Home  >  Article  >  WeChat Applet  >  Analysis of WeChat Mini Program Buffer

Analysis of WeChat Mini Program Buffer

不言
不言Original
2018-06-27 15:12:392747browse

This article mainly introduces the relevant information about the detailed explanation of the Buffer buffer of the WeChat applet. Friends who need it can refer to

The detailed explanation of the Buffer buffer of the WeChat applet

The JavaScript language itself only has string data types, not binary data types.

But when dealing with TCP streams or file streams, binary data must be used. Therefore, in Node.js, a Buffer class is defined, which is used to create a buffer area specifically for storing binary data.

In node.js, the Buffer class is a core library released with the Node kernel. The Buffer library brings a way to store raw data to Node.js, allowing Node.js to process binary data. Whenever you need to process data moved during I/O operations in Node.js, it is possible to use the Buffer library. . Raw data is stored in instances of the Buffer class. A Buffer is similar to an integer array, but it corresponds to a piece of raw memory outside of the V8 heap memory.

Create Buffer

1.长度为10的实例
var buf = new Buffer(10)
2.通过给定的数组创建
var buf = new Buffer([10,20,30,40,50])
3.通过字符串创建
var buf = new Buffer("www.csdn.net","utf-8")
utf-8 是默认的编码方式
支持以下编码:"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex"。

##Write buffer.write()

var buf = new Buffer(200)
var len = buf.write("www.csdn.net")
console.log("写入字节数:" + len)

  • string - The string to write to the buffer.

  • offset - The index value at which the buffer starts to be written, default is 0.

  • length - Number of bytes written, defaults to buffer.length

  • encoding - Encoding used. Default is 'utf8' .

Cache area read.toString()

buf = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
 buf[i] = i + 97;
}

console.log( buf.toString(&#39;ascii&#39;));    // 输出: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString(&#39;ascii&#39;,0,5));  // 输出: abcde
console.log( buf.toString(&#39;utf8&#39;,0,5));  // 输出: abcde
console.log( buf.toString(undefined,0,5)); // 使用 &#39;utf8&#39; 编码, 并输出: abcde

  1. encoding - the encoding to use. Default is 'utf8' .

  2. start - Specifies the index position to start reading, default is 0.

  3. end - End position, defaults to the end of the buffer.

Buffer to JSON

var buf = new Buffer(&#39;www.runoob.com&#39;);
var json = buf.toJSON(buf);
console.log(json);

Merge Buffer.concat([, ])

var buf = new Buffer("北京")
var buf1 = new Buffer("上海")
var buf2 = Buffer.concat([buf,buf1],12)
console.log(buf2.toString())

  • list An array list of Buffer objects used for merging.

  • totalLength specifies the total length of the merged Buffer object.


Compare.compare(otherBuffer)

Introduced in Node.js v0.12.2 version

var buffer1 = new Buffer("AVCX")
var buffer2 = new Buffer("ACVV")

var result = buffer1.compare(buffer2)

if(result < 0) {
  console.log(buffer1 + " 在 " + buffer2 + "之前");
}else if(result == 0){
  console.log(buffer1 + " 与 " + buffer2 + "相同");
}else {
  console.log(buffer1 + " 在 " + buffer2 + "之后");
}

Copy.compare(buffer2)

buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])

  1. targetBuffer - The Buffer object to be copied.

  2. targetStart - number, optional, default: 0

  3. ##sourceStart - number, optional, default: 0
  4. sourceEnd - number, optional, default: buffer.length

  5. ##
    var buf1 = new Buffer("beiJing")
    var buf2 = new Buffer(8)
    buf1.copy(buf2)
    console.log("buf2 content:"+buf2.toString())

Clip .slice(buffer2)

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

##start - number, optional, default: 0

  1. end - number, optional, default: buffer.length

  2. Return value

Return a new Buffer, which points to the same memory as the old buffer, but is cut from index start to end.

var buf1 = new Buffer("beiJing")
var buf2 = buf1.slice(0,8)
console.log("buf2 content:"+buf2)
// beiJing

length.length

buf.length;

//Return the number of bytes of this buffer. Note that this is not necessarily the size of the contents of the buffer. length is the amount of memory allocated by the buffer object, and it will not change as the contents of the buffer object change.

The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

About the dynamic parameter transfer of the WeChat applet

About the asynchronous processing of the WeChat applet

Introduction to data storage, parameter passing and data caching in WeChat applet development


##

The above is the detailed content of Analysis of WeChat Mini Program Buffer. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn