ES6对象类型判断

    技术2022-07-12  78

    数组对象

    var arr=[{"name":"ls","age":12},{"name":"jason","age":22},12];

    1、 typeof 判断

    console.log( typeof arr) console.log( typeof arr=='object') //typeof的一个不好的地方就是它会把Array还有用户自定义函数都返回为object

    2、构造函数指针 判断

    console.log(arr.constructor.name) console.log(arr.constructor.name==Array) console.log(arr.constructor.name=='Array') //打印构造函数指针 console.log(a.constructor) function Array() { [native code] } //打印Array函数 console.log(Array) function Array() { [native code] } //两个完全一致的函数作比较 console.log(a.constructor==Array) true

    3、instranceof 判断

    console.log( arr instanceof Array) //利用typeof和constructor进行严格判断  console.log((typeof arr=="object") && (arr.constructor==Array))  console.log((typeof arr=="object") && (arr.constructor.name=='Array'))

    4、原型函数 判断

    console.log(Object.prototype.toString.call(arr)); //封装改进后的函数 console.log(type(arr)); var class2type = {},     //用于记录[object class]样式   objs = "Boolean Number String Function Array Date RegExp Null Undefined".split(" ");   for (var i = 0, l = objs.length; i < l; i++) {        class2type[ "[object " + objs[i] + "]" ] = objs[i].toLowerCase();   }   function type(obj) {        return class2type[ Object.prototype.toString.call(obj) ] || "object";   }
    Processed: 0.029, SQL: 9