📅  最后修改于: 2023-12-03 15:32:44.520000             🧑  作者: Mango
_.isBuffer(value)
方法是 Lodash 提供的对 Buffer 类型数据的判断方法,用于判断一个值是否为 Buffer 类型。
该方法返回一个布尔值,如果传入的参数是 Buffer 类型,则返回 true,否则返回 false。
_.isBuffer(value)
value
(任意类型): 需要判断的值。(Boolean)
布尔值,如果参数是 Buffer 类型则返回 true,否则返回 false。
const _ = require("lodash");
_.isBuffer(Buffer.from("Hello World")); // true
_.isBuffer("Hello World"); // false
_.isBuffer(""); // false
_.isBuffer({}); // false
判断一个值是否为 Buffer 类型,可以使用 Buffer.isBuffer() 方法,如下示例所示:
Buffer.isBuffer(new Buffer("hello")); // true
Buffer.isBuffer("hello"); // false
Buffer.isBuffer({}); // false
而 Lodash 实现的 _.isBuffer(value) 方法,实际上也是调用了 Buffer.isBuffer(value) 方法来判断传入的参数是否为 Buffer 类型。具体实现代码如下:
function isBuffer(value) {
return value instanceof ArrayBuffer || (value && typeof value === 'object' && Object.prototype.toString.call(value) == '[object Uint8Array]') || false;
}
该方法首先判断参数是否为 ArrayBuffer 类型,如果是则返回 true。如果不是,会再次判断参数是否为 object 类型,如果是则调用 Object.prototype.toString() 方法返回类型信息,如果是 '[object Uint8Array]' ,则说明参数是 Uint8Array 类型,也就是 Buffer 类型,返回 true。如果都不是,则返回 false。