Node.js util.types.isArrayBufferView() 方法
“util”模块提供了用于调试目的的“utility”函数。为了访问这些函数,我们需要调用它们(通过 'require('util')')。
util.types.isArrayBufferView() (v10.0.0新增)方法是util模块的内置应用程序接口,相当于ArrayBuffer.isView()方法。它检查该值是否是类型化数组对象之一的实例或作为ArrayBuffer视图的 DataView。如果传递的值是类型数组对象或DataView ,即ArrayBuffer ,则返回“true”,否则返回“false”。
句法:
const util = require('util');
util.types.isArrayBufferView(value);
参数:此方法接受如上所述和如下所述的单个参数:
value
:它是一个必需参数,可以接受任何变量、Class、 函数、Object 或 JavaScript 原语或任何数据类型。
返回值
下面的示例说明了 Node.js 中 util.types.isArrayBufferView() 方法的使用。
示例 1:文件名:index.js
// Node.js program to demonstrate the
// util.types.isArrayBufferView() method
// Using require to access util module
const util = require('util');
const {types} = require('util');
// Passing ArrayBuffer as parameter
console.log("1.>", util.types.isArrayBufferView(new ArrayBuffer()));
// Returns false
// Passing Array with argument as parameter
console.log("2.>", util.types.isArrayBufferView([1, "a", "@", "18"]));
// Returns false
// Passing Buffer as parameter
console.log("3.>",
util.types.isArrayBufferView(Buffer.from('hello world')));
// Returns true
// Passing Float64Array as parameter
console.log("4.>", util.types.isArrayBufferView(new Float64Array()));
// Returns true
// Passing data as parameter
console.log("5.>", util.types.isArrayBufferView([1, 5, 8, 18]));
// Returns false
// Passing Array Buffer wrapped in dataView as parameter
console.log("6.>",
util.types.isArrayBufferView(new DataView(new ArrayBuffer(16))));
// Returns true
// Passing Int8Array as parameter
console.log("7.>", util.types.isArrayBufferView(new Int8Array(8)));
// Returns true
使用以下命令运行index.js文件:
node index.js
输出:
1.> false
2.> false
3.> true
4.> true
5.> false
6.> true
7.> true
示例 2:文件名:index.js
// Node.js program to demonstrate the
// util.types.isArrayBufferView() method
// Using require to access util module
const util = require('util');
const {types} = require('util');
let value1 = Uint8Array.from([1, 2, 3, 4])
var akash = value1.subarray(0, 2)
var arrayBuffer = akash.buffer;
var geeksforgeeks = new BigUint64Array(465);
// Passing converted arrayBuffer as parameter
console.log("1.>", util.types.isArrayBufferView(arrayBuffer));
// Returns false
// Passing empty parameter
console.log("2.>", util.types.isArrayBufferView());
// Returns false
// Passing Float32Array as parameter
console.log("3.>", util.types.isArrayBufferView(new Float32Array()));
// Returns true
// Passing JSON as parameter
console.log("4.>",
util.types.isArrayBufferView({name:"satyam", value:"sahai"}));
// Returns false
var amit = new Uint8Array(["alfa", 1]);
// Converting to Array buffer
var newArrayBuffer = amit.buffer;
// Converting and passing array buffer as parameter
console.log("5.>", util.types.isArrayBufferView(newArrayBuffer));
// Returns false
// Passing Uint8Array as parameter
console.log("6.>", types.isArrayBufferView(new Uint8Array()));
// Returns true
// Passing and converting buffer as parameter
console.log("7.>", types.isArrayBufferView(geeksforgeeks.buffer));
// Returns false
var var1 = new ArrayBuffer();
var var2 = new Int16Array();
// Calling util.types.isArrayBufferView() method
if (util.types.isArrayBufferView(var1))
console.log("Yes, the value have ArrayBuffer View.");
else
console.log("No, provided value do not have ArrayBuffer View.");
// Calling util.types.isArrayBufferView() method
if (util.types.isArrayBufferView(var2))
console.log("Yes, the value have ArrayBuffer View.");
else
console.log("No, provided value do not have ArrayBuffer View");
使用以下命令运行index.js文件:
node index.js
输出:
1.> false
2.> false
3.> true
4.> false
5.> false
6.> true
7.> false
No, provided value do not have ArrayBuffer View.
Yes, the value have ArrayBuffer View.
参考: https://nodejs.org/api/util.html#util_util_types_isarraybufferview_value