欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网道 / JS常见类型的判断

程序员文章站 2024-02-18 18:25:34
...

JS常见类型的判断,这里列举了三类,之后碰到更好的持续更。。。
第一类:

var obj = {}
var arr = []
var str = ''
var num = 1
var bool = true
var date = new Date()
var reg = new RegExp()
var set = new Set()
var map = new Map()
var fun = new Function()
var symbol = Symbol()
Object.prototype.type = function (){
  return Object.prototype.toString.call(this)
}
console.log(obj.type())      // [object Object]
console.log(arr.type())      // [object Array]
console.log(str.type())      // [object String]
console.log(bool.type())     // [object Boolean]
console.log(date.type())     // [object Date]
console.log(reg.type())      // [object RegExp]
console.log(set.type())      // [object Set]
console.log(map.type())      // [object Map]
console.log(fun.type())      // [object Function]
console.log(symbol.type())   // [object Symbol]

第二类

var obj = {}
var arr = []
var str = ''
var num = 1
var bool = true
var date = new Date()
var reg = new RegExp()
var set = new Set()
var map = new Map()
var fun = new Function()
var symbol = Symbol()
var type = function (data){
  return Object.prototype.toString.call(data)
}
console.log(type(obj)) // [object Object]
console.log(type(arr)) // [object Array]
console.log(type(str)) // [object String]
console.log(type(num)) // [object Number]
console.log(type(date)) // [object Date]
console.log(type(reg)) // [object RegExp]
console.log(type(set)) // [object Set]
console.log(type(map)) // [object Map]
console.log(type(fun)) // [object Function]
console.log(type(symbol)) // [object Symbol]


第三类

var type = function (o){
  var s = Object.prototype.toString.call(o);
  return s.match(/\[object (.*?)\]/)[1].toLowerCase();
};
 
type({}); // "object"
type([]); // "array"
type(5); // "number"
type(null); // "null"
type(); // "undefined"
type(/abcd/); // "regex"
type(new Date()); // "date"

借鉴:https://wangdoc.com/javascript/types/array.html

相关标签: JS类型判断