在ES6中,我如何测试变量是Array
还是Map
?
instance.constructor.name === 'Map'
是一种冒险的习惯,即使它是核心类型,在你的自己的班级做这件事时会缩小测试。
验证变量是Map
实例的最可靠方法是什么
而不是检查构造函数的.name
(string)属性,只需检查构造函数本身是否为=== Map
:
const m = new Map();
console.log(m.constructor === Map);
一个数组可以在javascript中无处可寻。但是,您可能会与对象或地图混淆。要检查javascript变量是否为Array
,您可以使用instanceof
operator
var array = [],
map = new Map;
console.log(Array.isArray(array)); // true
console.log(Array.isArray(map)); // false
console.log(array instanceof Map); // false
console.log(map instanceof Map); // true
要测试的是变量是一个Array的实例,你可以编写Map
你可以使用instance instanceof Map
。如果对象是地图,它将返回true / false
对于检查数组,请使用isArray方法
var instance = new Map;
console.log(instance instanceof Map); // true
console.log(instance instanceof Array); //false
instanceof