Node.js - Buffer.equals() 方法



NodeJS Buffer.equals() 比较两个缓冲区,如果相等,则返回 true,如果不相等,则返回 false。当它返回 0 时,它有点类似于 Buffer.compare() 方法。

语法

以下是NodeJS equals()方法的语法 -


 buffer.equals(buf);

参数

Buffer.equals() 方法接受一个参数,该参数也是一个缓冲区。这是一个必需的参数。

  • buf − 它是一个缓冲区对象,用于比较。

返回值

如果比较的缓冲区相等,则 Buffer.equals() 返回 true,如果相等,则返回 false。

在下面的示例中,我们创建了两个缓冲区,其字符串为“Hello”。稍后使用 NodeJS buffer.equal() 方法比较两个缓冲区。


const buffer1 = Buffer.from('Hello');
const buffer2 = Buffer.from('Hello');
console.log("The output for buffer.equals() is "+buffer1.equals(buffer2));

输出

The output for buffer.equals() is true

在下面的示例中,我们创建了两个缓冲区,分别具有字符串“Hello”和“World”。稍后使用 buffer.equal() 方法比较两个缓冲区。由于字符串不同,因此 buffer.equals() 的输出将为 false。


const buffer1 = Buffer.from('Hello');
const buffer2 = Buffer.from('World');
console.log("The output for buffer.equals() is "+buffer1.equals(buffer2));

输出

The output for buffer.equals() is false

在下面的示例中,我们使用 buffer.equals buffer.compare() 方法来比较字符串相同时的结果。


const buffer1 = 	Buffer.from("hello");
var buffer2 = Buffer.from("hello");
buffer1.equals(buffer2); 	// It will return true
buffer1.compare(buffer2); // It will return 0
Buffer.compare(buffer1, buffer2);// It will return 0
console.log("Using Buffer.equals() "+ buffer1.equals(buffer2));
console.log("Using Buffer.compare() "+ buffer1.compare(buffer2));

输出

Using Buffer.equals() true
Using Buffer.compare() 0

buffer.equals() 方法区分大小写。这意味着字符串 Hello 和 hello 是不同的。


const buffer1 = Buffer.from('Hello');
const buffer2 = Buffer.from('hello');
console.log("The output for buffer.equals() is "+buffer1.equals(buffer2));

输出

The output for buffer.equals() is false

在示例中,我们有两个缓冲区,一个具有字符串 Hello,以及字符串 Hello 的十六进制代码值:48656c6c6f

现在,当我们比较两个缓冲区时,它将返回 true。原因是为两者分配的空间是相同的。


const buffer1 = Buffer.from('Hello');
const buffer2 = Buffer.from('48656c6c6f', 'hex');
console.log("The output for buffer.equals() is "+buffer1.equals(buffer2));

输出

The output for buffer.equals() is true