`
zccst
  • 浏览: 3290179 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js判断复合数据类型的两种方式(typeof不奏效了)

阅读更多
作者:zccst

typeof认为所有的复合数据类型都是"object",没法进一步细分,所以还得用其他方法

先上结论:

1,(arr && typeof(arr) === "object" && arr.constructor === Array)

2,Object.prototype.toString.call(arr);
Object.prototype.toString.call([]);
//"[object Array]"
Object.prototype.toString.call({});
//"[object Object]"


例子:
    var arr = [];
    arr['name'] = "helios";
    arr['version'] = 'trunk';
    console.log(arr, typeof arr);
    console.dir(arr);//信息比较全面
    $.each(arr, function(key, item){//没有进入循环,是因为length=0
        console.log(key, item, item[key]);
    });
    console.log( Object.prototype.toString.call(arr) );
    console.log( arr.constructor , arr.constructor === Array);
    console.log(arr && typeof(arr) === "object" && arr.constructor === Array);


打印:
[name: "helios", version: "trunk"] "object"
Array[0]
  length: 0
  name: "helios"
  version: "trunk"
  __proto__: Array[0]
[object Array]
function Array() { [native code] } true
true

批注:
1,arr还是数组。只不过length=0,同时绑定了两个静态变量。jQuery不循环这类数据。

2,typeof只是用来判断基本数据类型的。复合数据类型typeof判断出都是"object"

3,instanceof也不奏效,因为他们是继承关系。
    var arr = [];
    arr['name'] = "helios";
    arr['version'] = 'trunk';
    console.log( arr instanceof Array );  //true
    console.log( arr instanceof Object ); //true



如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
评论

相关推荐

    JS 使用 typeof 获取数据类型

    NULL 博文链接:https://onestopweb.iteye.com/blog/2327118

    JS数据类型判断的几种常用方法

    JavaScript 中常见数据类型有Number、String、Boolean、Object、Array、Json、Function、Date、RegExp、Error、undefined、Null等十几种。ES6还有新增的数据类型有Symbol、Set、Map等。在实际应用中,我们经常需要...

    关于js typeof 与 instanceof 判断数据类型区别及开发使用.docx

    关于js typeof 与 instanceof 判断数据类型区别及开发使用.docx

    js 判断数据类型的几种方法

    判断js中的数据类型有一下几种方法:typeof、instanceof、 constructor、 prototype、 $.type()/jquery.type(),接下来主要比较一下这几种方法的异同。 先举几个例子: var a = "iamstring."; var b = 222; var c= ...

    JS判断是否是图片类型

    alert("图片类型必须是.gif,jpeg,jpg,png中的一种") return false; } } } 主要代码: <input type="file" id="imgFile" name="imgFile"/><input type="submit" value="上传"/> ${sysadmin_ctx }/upload" method...

    JavaScript基础知识之数据类型

    数据类型 JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。 typeof操作符 介于...

    判断数据类型的方法.html

    JS中判断数据类型的4种方法及其实例:typeof、instanceof、constructor、Object.prototype.toString.call();还有判断数据类型的函数

    JS类型检测库弥补typeof的问题

    JS类型检测库,弥补typeof的问题

    JS数据类型分类及常用判断方法

    数据类型判断的方法 在探索数据类型判断方法的时候我们...我相信typeof这个判断数据类型的方法是大家平常用的比较多的,闲话不多说,直接上代码: console.log(typeof 1);//number console.log(typeof ‘hello’);//st

    js判断undefined变量类型使用typeof

    js判断undefined变量类型使用typeof可以轻松实现,不了解的朋友可以参考下哈,希望对你有所帮助

    js中判断变量类型函数typeof的用法总结.docx

    js中判断变量类型函数typeof的用法总结.docx

    JavaScript判断数据类型有几种方法及区别介绍

    有五种数据判断类型方法typeof 、instanceof、constructor、Object.prototype.toString.call()、jquery.type() 一、typeof方法 typeof是个操作符,可以判断基本数据类型(返回的结果只能是number,string,boolean...

    instanceof 判断引用类型,typeof判断基本类型。

    NULL 博文链接:https://longxingtx520.iteye.com/blog/1439423

    浅谈js基本数据类型和typeof

    JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 •null:空、无。表示不存在,当为对象的属性赋值为null,表示删除该属性 •undefined:未定义。当声明变量却没有赋值时会显示该值。可以为变量赋值为...

    JavaScript中判断对象类型的几种方法总结

    我们知道,JavaScript中检测对象类型的运算符有:typeof、instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串。如:”number”,”string”,”...

    JS开发中基本数据类型具体有哪几种

    JS的数据类型包括基本数据类型、复杂数据类型和特殊数据类型,今天我们主要先讲解一下基本数据类型。 0、先提示两个下面用到的知识点: 0.1typeof,是用来检测变量类型的 写法:typeof a; 0.2console.log()是用来...

    JS数据类型检测

    JavaScript中如何检测数据类型?有四种检测的方式: typeof:检测数据类型的运算符 instanceof : 检测某个实例是否属于这个类(什么是类) constructor: 获取当前实例的构造器 Object.prototype.toString.call :...

    日期类型的验证和校验,typeof一般是不管用的

    日期类型的验证和校验,typeof一般是不管用的 这个文档提供了有效的方法来进行日期验证

    JavaScript中判断数据类型的方法总结

    typeof typeof用的比较多的时候,是判断某个全局变量在不在,假如某个页面定义了一个全局变量。假如你做如下判断: //haorooms是全局变量 ...此外,typeof还可以进行数据类型的判断!如下: var haorooms=string; c

    浅谈js数据类型判断与数组判断

    1. js六大数据类型 number:数字,整数、浮点数等等, string:单引号或者双引号来说明, Boolean:返回true和false,这两个值不一定对应1和0 object:对象,可以执行new操作符后跟要创建的对象类型的名称来创建。 ...

Global site tag (gtag.js) - Google Analytics