Kind-of

kind-of

Get the native type of a value.

Most of use would have faced nuances of typeof like below:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> typeof (null)
'object'

> typeof /RE/
'object'

> typeof (new Date())
'object'

> typeof []
'object'

> typeof {}
'object'

kind-of just fixes these issues and is also ES6 ready.

Get it: npm install --save kind-of

Sample usage:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
var kindOf = require('kind-of');

kindOf(undefined);
//=> 'undefined' 

kindOf(null);
//=> 'null' 

kindOf(true);
//=> 'boolean' 

kindOf(false);
//=> 'boolean' 

kindOf(new Boolean(true));
//=> 'boolean' 

kindOf(new Buffer(''));
//=> 'buffer' 

kindOf(42);
//=> 'number' 

kindOf(new Number(42));
//=> 'number' 

kindOf('str');
//=> 'string' 

kindOf(new String('str'));
//=> 'string' 

kindOf(arguments);
//=> 'arguments' 

kindOf({});
//=> 'object' 

kindOf(Object.create(null));
//=> 'object' 

kindOf(new Test());
//=> 'object' 

kindOf(new Date());
//=> 'date' 

kindOf([]);
//=> 'array' 

kindOf([1, 2, 3]);
//=> 'array' 

kindOf(new Array());
//=> 'array' 

kindOf(/foo/);
//=> 'regexp' 

kindOf(new RegExp('foo'));
//=> 'regexp' 

kindOf(function () {});
//=> 'function' 

kindOf(function * () {});
//=> 'function' 

kindOf(new Function());
//=> 'function' 

kindOf(new Map());
//=> 'map' 

kindOf(new WeakMap());
//=> 'weakmap' 

kindOf(new Set());
//=> 'set' 

kindOf(new WeakSet());
//=> 'weakset' 

kindOf(Symbol('str'));
//=> 'symbol' 

kindOf(new Int8Array());
//=> 'int8array' 

kindOf(new Uint8Array());
//=> 'uint8array' 

kindOf(new Uint8ClampedArray());
//=> 'uint8clampedarray' 

kindOf(new Int16Array());
//=> 'int16array' 

kindOf(new Uint16Array());
//=> 'uint16array' 

kindOf(new Int32Array());
//=> 'int32array' 

kindOf(new Uint32Array());
//=> 'uint32array' 

kindOf(new Float32Array());
//=> 'float32array' 

kindOf(new Float64Array());
//=> 'float64array' 

GIF FTW

kind-of

Suggest a module

Comments