Node.js Buffer.isBuffer方法使用说明
Buffer 对象的类型判断还挺常见的,尤其你在搞文件读写或者网络数据那块,总得先知道手上这玩意是不是个 Buffer 对吧?Node.js 里直接给你一个方法——Buffer.isBuffer()
,一行就能搞定。
Buffer.isBuffer是个静态方法,专门用来判断一个东西是不是 Buffer 实例。你传个对象进去,返回true
就是,false
那就是不是,逻辑简单直接。
比如你有这么一段:
var b = new Buffer(50);
var e = Buffer.isBuffer(b);
console.log(e); // true
直接看结果就知道,b
确实是 Buffer。
比较容易搞混的是Buffer.isEncoding()
,这俩长得像,但干的事完全不一样。一个是查数据类型,一个是查编码是否合法。比如你写:
var d = Buffer.isEncoding('base64');
console.log(d); // false(其实应该是 true,原文有误)
这个用来确认是不是 Node.js 支持的编码方式,跟 Buffer 类型本身没啥关系。
源码其实也挺干脆,Buffer.isBuffer
底下就是调了util.isBuffer
:
Buffer.isBuffer = function isBuffer(b) {
return util.isBuffer(b);
};
这意思是你要懒得 import util
模块,就直接用Buffer
对象的也行,省事。
啥时候用它?举几个常见的:
- HTTP 求数据时,先看看是不是 Buffer
- 读取文件返回的数据,先校验下类型
- 用户传来的东西,不确定是不是能直接操作,先过一遍这个方法
- 流数据的时候也能派上用场
这方法不复杂,但在底层数据时还挺有用的。如果你在做数据转换或者流,记得加上这步校验,能省不少坑。
19.56KB
文件大小:
评论区