simple-is.js
1.57 KB
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
// simple-is.js
// MIT licensed, see LICENSE file
// Copyright (c) 2013 Olov Lassus <olov.lassus@gmail.com>
var is = (function() {
"use strict";
var hasOwnProperty = Object.prototype.hasOwnProperty;
var toString = Object.prototype.toString;
var _undefined = void 0;
return {
nan: function(v) {
return v !== v;
},
boolean: function(v) {
return typeof v === "boolean";
},
number: function(v) {
return typeof v === "number";
},
string: function(v) {
return typeof v === "string";
},
fn: function(v) {
return typeof v === "function";
},
object: function(v) {
return v !== null && typeof v === "object";
},
primitive: function(v) {
var t = typeof v;
return v === null || v === _undefined ||
t === "boolean" || t === "number" || t === "string";
},
array: Array.isArray || function(v) {
return toString.call(v) === "[object Array]";
},
finitenumber: function(v) {
return typeof v === "number" && isFinite(v);
},
someof: function(v, values) {
return values.indexOf(v) >= 0;
},
noneof: function(v, values) {
return values.indexOf(v) === -1;
},
own: function(obj, prop) {
return hasOwnProperty.call(obj, prop);
},
};
})();
if (typeof module !== "undefined" && typeof module.exports !== "undefined") {
module.exports = is;
}