这是第二版,可以区分
1.基本数据类型(string、number、boolean)
undefined、null
2.引用类型
数组、RegExp、函数、 自定义数据类型(通过new 函数名得到)
包装类型(String、Number、Boolean)
function DataType() { } DataType.RegExp = "RegExp"; DataType.ObjectString = "Objectstring"; DataType.string = "string"; DataType.NULL = "null"; DataType.UNDEFINED = "undefined"; DataType.ObjectNumber = "Objectnumber"; DataType.number = "number"; DataType.ObjectBoolean = "Objectboolean"; DataType.boolean = "boolean"; DataType.function = "function"; DataType.array = "array"; function getType(type) { if(typeof type == DataType.UNDEFINED) { return DataType.UNDEFINED; } else if(typeof type == "object") { if(type == null) { return DataType.NULL ; } else { if(typeof type.valueOf() == DataType.string) { return DataType.ObjectString } else if(typeof type.valueOf() == DataType.number) { return DataType.ObjectNumber; } else if(typeof type.valueOf() == DataType.boolean) { return DataType.ObjectBoolean; } else if(type instanceof Array) { return DataType.array; } else if(type instanceof RegExp) { return DataType.RegExp; } else if(typeof type.constructor == DataType.function) { return type.constructor.toString().match(/^function +(.+)\(/)[1]; } } } else if(typeof type == DataType.function) { return DataType.function } else { return typeof type; } }