📜  Node.js util.types.isMap() 方法(1)

📅  最后修改于: 2023-12-03 14:44:40.873000             🧑  作者: Mango

Node.js util.types.isMap() 方法

简介

util.types.isMap() 方法是Node.js提供的一个工具方法,用于判断给定的变量是否为Map数据类型。

本方法已从Node.js v15.0.0开始引入。

语法
util.types.isMap(value)
参数
  • value:要判断的变量。
返回值
  • 如果value是Map数据类型,则返回true,否则返回false
示例
检测变量是否为Map数据类型
const util = require('util');

const map = new Map([['name', '张三'], ['age', 18]]);
console.log(util.types.isMap(map)); // 输出 true

const obj = { name: '张三', age: 18 };
console.log(util.types.isMap(obj)); // 输出 false

const arr = [['name', '张三'], ['age', 18]];
console.log(util.types.isMap(arr)); // 输出 false
在自定义类中使用
const util = require('util');

class CustomMap {
  constructor() {
    this.map = new Map();
  }

  set(key, value) {
    this.map.set(key, value);
  }

  has(key) {
    return this.map.has(key);
  }

  get size() {
    return this.map.size;
  }
}

const customMap = new CustomMap();
customMap.set('name', '张三');
customMap.set('age', 18);
console.log(util.types.isMap(customMap)); // 输出 false

class CustomMap2 extends Map {}

const customMap2 = new CustomMap2([['name', '张三'], ['age', 18]]);
console.log(util.types.isMap(customMap2)); // 输出 true
注意事项

util.types.isMap() 方法判断的是变量是否为Map数据类型,即使用new Map()创建的实例。如果变量并不是通过new Map()创建的实例,则返回false

尽管 JavaScript 内置的对象Map.prototype也具有Map的标识符,但它不会被utility.types.isMap所检测。